date() не поддерживает текущую локаль, а strftime()

Это полное содержание моего тестового файла:

<?php
setlocale(LC_ALL, 'de_DE');
echo date('F'); // => "February" (wrong)
echo strftime('%B'); // => "Februar" (correct)
?>

Есть идеи, почему это может происходить? Я уже убедился, что de_DE локаль установлена, используя locale -a в оболочке.

1 ответ

Решение

Из руководства:

Чтобы форматировать даты на других языках, вы должны использовать функции setlocale() и strftime() вместо date().

Так что вы видите ожидаемое поведение. использование strftime() для локализованных дат и date() когда это не нужно.

Другие вопросы по тегам