PHP strftime输出错误的格式,尽管时区正确
我在php.ini中将时区配置为欧洲/巴黎。在执行date\u default\u timezone\u get时,我确实得到了正确的值 然后,我希望strftime“%x”,date输出类似2018年11月16日的法语格式。但是,我得到的是2018年11月16日,看起来像美国的格式PHP strftime输出错误的格式,尽管时区正确,php,date,timezone,locale,strftime,Php,Date,Timezone,Locale,Strftime,我在php.ini中将时区配置为欧洲/巴黎。在执行date\u default\u timezone\u get时,我确实得到了正确的值 然后,我希望strftime“%x”,date输出类似2018年11月16日的法语格式。但是,我得到的是2018年11月16日,看起来像美国的格式 知道为什么吗?将时区设置为欧洲/巴黎后,使用回音日期'd-M-Y',它将显示您想要的时间。它对我有效我试过: setlocale(LC_ALL, 'fr_utf8'); echo strftime("%d %B
知道为什么吗?将时区设置为欧洲/巴黎后,使用回音日期'd-M-Y',它将显示您想要的时间。它对我有效我试过:
setlocale(LC_ALL, 'fr_utf8');
echo strftime("%d %B %Y", time());
得到:
16 novembre 2018
时区对日期和时间的显示方式没有影响,因此需要设置区域设置。虽然没有语言环境名称的标准,但幸运的是PHP函数将使用多个语言环境名称,在第一个成功的名称处停止
// 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());
设置时区不会设置区域设置。您需要查看或讨论将其放在INI文件中,它似乎不起作用。设置locale'fr_fr'后,格式仍然相同。在服务器上,运行locale-a以查看可用的locale。在不同的操作系统上,它们的名称通常不同。fr_fr很可能是您要找的。我这边可能有2018年11月16日英文版的副本。但无论如何,我必须坚持使用%x,因为我托管的应用程序不是我的,并且使用此格式。%x应该提供2018年11月16日的格式:%x基于区域设置的首选日期表示形式,没有时间示例:2009年2月5日的02/05/09法语中的x将给您2018年11月16日好的,我终于注意到fr_fr尚未添加到我的服务器。多亏了,我添加了它,然后使用setlocale'fr_fr'完成了这个任务。感谢您的帮助:请记住,如果您计划在任何不同的服务器上运行此功能,那么使用每个名称都会更安全!在上,没有区域设置名称的标准-这是不正确的。IETF语言标签是标准,包含在中。更多就其他部分达成一致。时区和地点是正交的。@MattJohnson I站更正。我应该说操作系统制造商没有一贯遵循的标准。嗨,这不应该起作用,用户希望2018年11月16日的法语版本。