У меня проблема с использованием Yii2-форматера. Мой конфиг
является
'formatter' => [
'class' => 'yii\i18n\Formatter',
'defaultTimeZone' => 'Asia/Novosibirsk',
'timeZone' => 'Asia/Novosibirsk',
'currencyCode' => 'RUB',
'locale' => 'ru_RU',
'dateFormat' => 'php:d.m.Y',
'timeFormat' => 'php: H:i:s',
'datetimeFormat' => 'php:d.m.Y H:i',
],
Когда я пытаюсь
echo Yii::$app->formatter->asDateTime('15-06-2014 14:10:10');
все работает правильно — шоу 15.06.2014 14:10.
Когда я пытаюсь
echo Yii::$app->formatter->asDateTime('15-06-2015 14:10:10');
это работает не правильно — покажи 15.06.2015 15:10. Когда я установил 2016 год, он тоже не исправлен. Я стараюсь
echo date('d.m.Y H:i', strtotime('15-06-2015 14:10:10'))
И работает корректно на 2015 и 2016 годы, PHP-конфиг правильный. Может ли кто-нибудь помочь, что не так с моим кодом?
Я думаю, что это связано с возвращением к стандартному времени в течение всего года в России в 2014 году (26 октября). Увидеть Эта статья для справки:
Большинство россиян перейдут на постоянное стандартное время или «зимнее время»,
установив часы на 1 час назад 26 октября 2014 года.
В тот же день большинство европейцев заканчивают переход на летнее время.
Проверь себя date.timezone
установка в php.ini
используется конфигурация и версия PHP, похоже, это было исправлено в более поздних версиях.
Также проверьте tzdata
а также pecl timezonedb
,
Может быть это обсуждение на форуме тоже будет полезно, даже на русском языке.
Других решений пока нет …