datetime symfony французский OVH
Я не понимаю, почему локаль, установленная в 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'));
возвращение: "22 декабря 1978 года" "вторник, 27 марта 2018 года - 18:49"
Хотелось бы только "22 декабря 1978 года"
Я не хочу использовать https://www.simonholywell.com/post/2015/07/international-php-dates-with-intl/ потому что я не хочу конвертировать даты каждый раз, когда мне нужно отобразить дату,
У меня нет этой проблемы на других хостерах. Только на веб-хостинге OVH.
Спасибо за помощь
1 ответ
В этой статье есть обходной путь из того же блога, состоящий в том, чтобы преобразовать объект даты в метку времени, а затем отформатировать его в соответствии с настройками локали с помощью 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')));
Я не знаю о причине использования strtotime
а также DateTime::format
вместо просто DateTime::getTimestamp
(оба ограничены датами после эпохи UNIX из-за strftime
), но я думаю, вам придется конвертировать DateTime так или иначе.