[РЕШЕНО] timeZone неверное время при установке временной зоны

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
Аватара пользователя
celsoft
Сообщения: 24
Зарегистрирован: 2014.08.07, 11:09
Откуда: Россия, г. Благовещенск
Контактная информация:

[РЕШЕНО] timeZone неверное время при установке временной зоны

Сообщение celsoft »

Здравствуйте. Подскажите в чем может быть дело?
Пишу так:

Код: Выделить всё

$myTimeZone = "Asia/Yakutsk";
Yii::$app->formatter->timeZone = $myTimeZone;
echo Yii::$app->getFormatter()->asDatetime(time());
Время спешит на час, но если сказать Московскую временную зону, то все ок.
Если же указать так:

Код: Выделить всё

$myTimeZone = "GMT+9";
То время отображается верно. Хотя по сути Asia/Yakutsk == GMT+9

Config:

Код: Выделить всё

'formatter' => [
    'dateFormat' => 'd.MM.Y',
    'timeFormat' => 'H:mm:ss',
    'datetimeFormat' => 'd.MM.Y H:mm',
    'defaultTimeZone' => 'Europe/Moscow',
],
Последний раз редактировалось celsoft 2016.09.28, 21:48, всего редактировалось 1 раз.
Аватара пользователя
celsoft
Сообщения: 24
Зарегистрирован: 2014.08.07, 11:09
Откуда: Россия, г. Благовещенск
Контактная информация:

Re: timeZone странно ведет себя

Сообщение celsoft »

Вот что удалось выяснить. Время спешит если временная зона устанавливается через IntlDateFormatter. Если в классе Formatter.php принудительно $this->_intlLoaded = false, то все нормально становится.
Версия intl 1.1.0
Аватара пользователя
celsoft
Сообщения: 24
Зарегистрирован: 2014.08.07, 11:09
Откуда: Россия, г. Благовещенск
Контактная информация:

Re: timeZone странно ведет себя

Сообщение celsoft »

Такая же проблема как у меня: viewtopic.php?t=17077
Пошел долбить хостера что бы обновлял. Отпишусь помогло обновление модулей или нет.
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: timeZone странно ведет себя

Сообщение Onotole »

ICU обновите
Аватара пользователя
celsoft
Сообщения: 24
Зарегистрирован: 2014.08.07, 11:09
Откуда: Россия, г. Благовещенск
Контактная информация:

Re: timeZone странно ведет себя

Сообщение celsoft »

Спасибо за ответ. Проблема действительно в ICU.

Код: Выделить всё

$time = time();
$formatter = new IntlDateFormatter('ru_RU', IntlDateFormatter::NONE, IntlDateFormatter::LONG, 'Asia/Yakutsk');
echo $formatter->format($time), PHP_EOL; 
В текущей версии базы ICU у моего хостера, временная зона Asia/Yakutsk идет как GMT+10.
Закрываю тему.
Закрыто