Вопрос и проблема с setlocale на windows согласно информации на php.net
Просто вопрос о некоторой информации о setlocale, которую я нашел на php.net http://php.net/manual/en/function.setlocale.php
Это говорит:
Note:
On Windows, setlocale(LC_ALL, '') sets the locale names from the system's regional/language settings (accessible via Control Panel).
Означает ли это, что если я добавлю setlocale(LC_ALL, '') в мой php, он должен быть таким же локальным, как и моя система? Потому что я сделал это, и это все еще английский с месяцами.
Когда я повторяю setlocale(LC_ALL, 0), я получаю это:
LC_COLLATE=C;LC_CTYPE=Norwegian (Bokm�l)_Norway.1252;LC_MONETARY=C;LC_NUMERIC=C;LC_TIME=C
и когда я повторяю setlocale(LC_ALL, ''), я получаю это:
Norwegian (Bokm�l)_Norway.1252
Так что я не знаю, что делать с эхом, похоже, что он установлен на норвежский, и когда я использую setlocale(LC_ALL, ''), я должен также установить все на норвежский, включая время, но это не так.
Вот также код, который я использую, чтобы изменить формат времени.
date('d.F', strtotime($row['date2']))
1 ответ
РЕШЕНИЕ: использование strftime()
вместо strtotime()
,
strtotime
не учитывает установленную локаль.
До:
date('d.F', strtotime($row['date2']))
Output: 17.February
После:
setlocale(LC_ALL, '');
strftime('%e.%B',strtotime($row['date2']))
Output: 17.februar