#php #localization #locale
#php #локализация
Вопрос:
$time = new DateTime('today 4 PM');
$now = new DateTime('now');
// check if current time is past 4 PM
if ($now > $time) {
$time = new DateTime('tomorrow 4 PM');
}
$diff = $time->diff($now);
часть, которую мне не нужно объяснять
после этого я проверяю день с
$dw = date( "w");
if ($dw == 6 || $dw == 0) {
и есть несколько операторов if и else, если его dw равно 6, тогда он должен увеличить день 2, поэтому, если это пятница, это воскресенье
и теперь я пытаюсь распечатать его с помощью echo
echo "Date ".$datetime->format('<b>l, d F</b>') . ";
он печатает воскресенье, 15 июня, но я пытаюсь преобразовать его в немецкий. Это на самом деле не работает, поэтому он все равно распечатывает его на английском языке. Что я уже проверяю:
Я уже добавляю
setlocale(LC_TIME, "de_DE");
и уже проверьте, установлен ли немецкий локальный, и да, это
так, и еще несколько… но ничего не работает…
и я подумал об удалении локалей, чтобы получить только немецкий, возможно, это могло бы сработать
, и я подумал об этом, я создал массив для определения дней с немецким именем, поэтому 0 = воскресенье, но тогда я должен все изменить
Комментарии:
1. 1 от меня, я бы всегда рекомендовал ppl использовать
DateTime
поверх любого другого режима / функции даты и времени, и я ожидаю, что он сможет использовать локали и без::format()
.
Ответ №1:
См. Примечание в руководстве по DateTime::format
:
Этот метод не использует локали. Все выходные данные на английском языке.
Если вы хотите вывести другие локали, кроме английского, вам придется использовать strftime()
.
Комментарии:
1. ах, хорошо, но как установить с помощью strftime () сегодня в 4 часа дня, как указано выше?
2. @ThePom См. Руководство,
l, d F
было бы что-то вроде%A, %d %B
.3. он по-прежнему выводит английскую версию, я также добавляю setlocale(LC_TIME, «de_DE»); снова
4. @ThePom Тогда языковой стандарт, вероятно, не установлен, я получаю это из командной строки:
$ php -r 'setlocale(LC_TIME, "de_DE"); echo strftime("%A, %d %B");' Freitag, 13 Juni
5. хорошо, если я посмотрю на сервер с помощью putty, я получу Fr 13. 17 июня: 15:37 по восточному времени 2014 года, так что это время в Германии, но у Magento есть проблема со временем, я думаю