我不明白为什么在OVH中设置的区域设置不适用于我的config.yml服务器。
我尝试在没有框架的情况下直接在php中转换日期,下面是我的结果:
setlocale (LC_TIME, 'fr_FR.utf8');
echo strftime ("% A% e% B% Y", mktime (0, 0, 0, 12, 22, 1978));
$today = new \datetime();
print_r ($today-> format ('l d F Y - H:i'));返回:"vendredi 22 décembre 1978“”2018年3月27日星期二- 18:49“
我只想要"vendredi 22 décembre 1978“
我不想使用https://www.simonholywell.com/post/2015/07/international-php-dates-with-intl/,因为我不想在每次需要显示日期时都转换日期。
我在其他主机上没有这个问题。仅限OVH虚拟主机。
谢谢你的帮助
发布于 2018-03-28 21:06:07
同一博客中的this article有一个解决方法,可以将日期对象转换为时间戳,然后使用strftime根据语言环境设置对其进行格式化
setlocale(LC_TIME, 'fr_FR')
echo strftime("%A %e %B %Y", (new \DateTime())->getTimestamp());Carbon是一个扩展DateTime的库,它在自己的formatLocalized method中处理这个问题
echo strftime("%A %e %B %Y", strtotime((new \DateTime())->format('Y-m-d H:i:s')));我不知道为什么要使用strtotime和DateTime::format而不仅仅是DateTime::getTimestamp (由于strftime,两者都被限制为UNIX时代之后的日期),但我猜您必须以某种方式转换DateTime。
https://stackoverflow.com/questions/49516627
复制相似问题