PHP: почему моя дата отформатирована на сервере по-другому? - PullRequest
0 голосов
/ 09 февраля 2012

Исходя из следующего исходного кода, я получаю разные выходные данные для dev (local-maxOSX) и live (debian):

setlocale(LC_TIME, 'de_DE' ); 
$intervalOutput = strftime('%a %d.%m. %H:%M', $start->getTimestamp());
echo $intervalOutput;

местный (правильное форматирование дня): до 01.03. 20: 00

живой сервер (неверно - мне нужен вывод дня недели на немецком языке): чт 01.03. 20: 00

Может кто-нибудь сказать мне, почему это происходит?

Ответы [ 3 ]

1 голос
/ 09 февраля 2012

Я думал, что это сработало для меня (вот почему я написал этот ответ здесь), но позже я понял, что это не работает на машине dev (OSX) сейчас. (Так что я только что отредактировал этот ответ) Вы можете попробовать это в любом случае:

1.) Установка локалей на работающий сервер (с правами root):

aptitude install debconf
dpkg-reconfigure locales

2.) Изменение:

setlocale(LC_TIME, 'de_DE')

до

setlocale(LC_TIME, 'de_DE.UTF8')

Причина, по которой это не работает для меня, заключается в том, что в OSX локаль называется "de_DE.utf-8", тогда как на компьютере Debian он называется "de_DE.UTF8".

1 голос
/ 09 февраля 2012

попробуйте использовать date_default_timezone_set или попробуйте использовать LC_ALL

0 голосов
/ 09 февраля 2012

Попробуйте следующее на обеих машинах.

$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "Preferred locale for german on this system is '$loc_de'";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...