尽管时区正确,PHP strftime输出格式错误

时间:2018-11-16 21:21:41

标签: php date timezone locale strftime

我在php.ini中将时区配置为欧洲/巴黎。执行date_default_timezone_get()时,我确实得到了正确的值。

然后,我希望strftime('%x', date())输出类似 16 novembre 2018 的格式。但是取而代之的是 11/16/2018 ,它看起来像美国格式。

知道为什么吗?

3 个答案:

答案 0 :(得分:2)

时区对日期和时间的显示方式没有影响,因为您需要设置区域设置。语言环境名称没有标准,但幸运的是,PHP的setlocale()函数将采用多个语言环境名称,并在第一个成功的语言环境名称处停止。

// 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());

答案 1 :(得分:1)

I tried:

setlocale(LC_ALL, 'fr_utf8');


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

and got:

16 novembre 2018

答案 2 :(得分:-1)

将时区设置为欧洲/巴黎后,使用回显日期('d-M-Y'),它将显示您想要的时间。它对我有用