Неверное отображение datetime

Предварительное обсуждение найденных ошибок перед отправкой их авторам фреймворка, а также внесение новых предложений.
Закрыто
Аватара пользователя
proctoleha
Сообщения: 279
Зарегистрирован: 2016.07.10, 19:00

Неверное отображение datetime

Сообщение proctoleha »

Продакшен: сервер на Debian 8, PHP 7.0.28-1~dotdeb+8.1, Yii2 version 2.0.16, timeZone на сервере Europe/Moscow

В файле
web.php timeZone => 'Europe/Moscow',
php.ini timeZone = 'Europe/Moscow'

Код:

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

        echo "<pre>";
        print_r(date('d-m-Y H:i', 1561713971));
        echo "</pre>";
        
        echo "<pre>";
        print_r(Yii::$app->formatter->asDatetime(1561713971));
        echo "</pre>";
        
        $date = new DateTime();
        $timeZone = $date->getTimezone();
        
        echo "<pre>";
        print_r($timeZone->getName());
        echo "</pre>";
        
        $utc_offset = date('Z') / 3600;
        echo "<pre>";
        print_r($utc_offset);
        echo "</pre>";
Скрин с боевого сервера

Изображение

Вопрос: почему Yii2 форматер показывает время на час больше?
Вот за что я не люблю линукс, так это за свои кривые, временами, руки

urichalex
Сообщения: 980
Зарегистрирован: 2015.08.07, 11:03

Re: Неверное отображение datetime

Сообщение urichalex »

Обновить ICU. В дебиане по умолчанию он какой-то старой версии, в которой в Europe/Moscow до сих пор +4

Аватара пользователя
proctoleha
Сообщения: 279
Зарегистрирован: 2016.07.10, 19:00

Re: Неверное отображение datetime

Сообщение proctoleha »

urichalex писал(а):
2019.07.18, 10:49
Обновить ICU. В дебиане по умолчанию он какой-то старой версии, в которой в Europe/Moscow до сих пор +4
Спасибо. Более точно можно сказать, что необходимо обновить и ICU и PHP intl

На локалке:

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

alex@alex-Aspire-ES1-572 ~ $ PHP_ICU_VERSION=$(php -r 'echo defined("INTL_ICU_VERSION") ? INTL_ICU_VERSION : "none";')
alex@alex-Aspire-ES1-572 ~ $ echo "PHP ICU version: $PHP_ICU_VERSION"
PHP ICU version: 64.1
На боевом:

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

root@cs79102:~# PHP_ICU_VERSION=$(php -r 'echo defined("INTL_ICU_VERSION") ? INTL_ICU_VERSION : "none";')
root@cs79102:~# echo "PHP ICU version: $PHP_ICU_VERSION"
PHP ICU version: 52.1
Вот за что я не люблю линукс, так это за свои кривые, временами, руки

Закрыто