Я использую этот простой скрипт для тестирования на моем хосте, который работает на PHP версии 5.6.
Скрипт выдает «среда» вместо выключенного «Woensdag» (голландский)
Почему день недели по-прежнему на английском, а не на голландском?
Это потому, что сервер неправильно настроен?
<?php
/* Set locale to Dutch */
date_default_timezone_set("Europe/Amsterdam");
setlocale(LC_ALL, 'nl_NL');
echo date("l"); // output: Wednesday instead off "Woensdag" (dutch)
?>
К сожалению, дата не является многоязычной. Если вы хотите отформатировать язык на другом языке, вам нужно установить локаль (как вы это делали в своем примере) и использовать STRFTIME
Опции форматирования для strftime приводят к «Woensdag» (или «mittwoch на немецком и т. Д.»):
setlocale(LC_TIME, 'en_EN');
echo strftime('%A', time()); // for a Wednesday will output: Wednesday
setlocale(LC_TIME, 'nl_NL');
echo strftime('%A', time()); // for a Wednesday will output: woensdag
Если только вы не хотите, чтобы на все влияло setlocale
Вы можете указать, что вы делаете это только на время (как в примере выше). Читать дальше setlocale
для получения дополнительной информации: http://php.net/manual/en/function.setlocale.php
Имейте в виду, что для этой работы на вашем компьютере должны быть доступны локали. Проверить с locale -a
на Linux. setlocale
имеет возвращаемое значение. Если оно ложно, то что-то пошло не так, и вы, скорее всего, пропустили указанную локаль.
Других решений пока нет …