0

我不明白为什么 config.yml symfony 中设置的语言环境没有应用到我的 OVH 服务器上。

我尝试直接在没有框架的情况下在 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 1978 年 12 月 22 日”“2018 年 3 月 27 日星期二 - 18:49”

我只想要“vendredi 1978 年 12 月 22 日”

我不想使用https://www.simonholywell.com/post/2015/07/international-php-dates-with-intl/因为我不想每次需要显示日期时都转换日期.

我在其他主机上没有这个问题。仅在 OVH 虚拟主机上。

谢谢你的帮助

4

1 回答 1

0

来自同一个博客的这篇文章有一个解决方法,包括将日期对象转换为时间戳,然后根据语言环境设置对其进行格式化strftime

setlocale(LC_TIME, 'fr_FR')

echo strftime("%A %e %B %Y", (new \DateTime())->getTimestamp());

Carbon,一个扩展 DateTime 的库,在它的formatLocalized方法中处理这个:

echo strftime("%A %e %B %Y", strtotime((new \DateTime())->format('Y-m-d H:i:s')));

我不知道使用strtotimeandDateTime::format而不仅仅是DateTime::getTimestamp(两者都限于 UNIX 纪元之后的日期,因为strftime),但我想你必须以某种方式转换 DateTime 。

于 2018-03-28T13:06:06.500 回答