PHP-язык de_DE возвращает английский язык - PullRequest
0 голосов
/ 12 ноября 2018

Я использую Apache и php 7 в системе Ubuntu. После установки немецких локалей и запуска locale -a для проверки установленных локалей я получаю C, C.UTF-8, de_DE, de_DE@euro, de_DE.iso88591, de_DE.iso885915@euro, de_DE.utf8, deutsch, en_US.utf8, german, POSIX. Я также обновляю язык, используя sudo update-locale. Однако используя php-код

setlocale(LC_ALL,'de_DE');
echo date("F", strtotime("2018-10-10"));

Возвращает мне английский «Октябрь», а не немецкий «Октобер». Я понятия не имею, что я могу сделать ... Я также перезапустил Apache ... но ничего не произошло.

1 Ответ

0 голосов
/ 12 ноября 2018

Функция date() не слушает локали - она ​​будет возвращать значения только на английском языке.

Из документации date(),

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

Вам нужно использовать strftime() вместо этого.

setlocale(LC_ALL,'de_DE');
echo strftime("%B", strtotime("2018-10-10"));
...