kalvn
kalvn

Reputation: 404

PHP strftime outputs wrong format despite correct timezone

I configured my timezone to Europe/Paris in php.ini. When executing date_default_timezone_get() I do get the correct value.

Then, I expect strftime('%x', date()) to output something like 16 novembre 2018 which is the French format. But instead, I get 11/16/2018 which looks like the US format.

Any idea why?

Upvotes: 0

Views: 1111

Answers (3)

miken32
miken32

Reputation: 42699

The time zone has no effect on how dates and times are presented, for that you need to set the locale. There are no standards for locale names, but fortunately PHP's setlocale() function will take multiple locale names, stopping at the first successful one.

// just a few common name formats
setlocale(LC_TIME, ["fr_FR.utf8", "fr_FR@euro", "fr_UTF8", "fr_FR", "french"]);
echo strftime("%d %B %Y", time());

Upvotes: 2

Justin Schwimmer
Justin Schwimmer

Reputation: 185

I tried:

setlocale(LC_ALL, 'fr_utf8');


echo strftime("%d %B %Y", time());

and got:

16 novembre 2018

Upvotes: 1

microsoftjulius
microsoftjulius

Reputation: 399

after setting the timezone to Europe/Paris, Use echo date('d-M-Y') and it will display your desired time. it worked for me

Upvotes: -2

Related Questions