Yii2 форматер asDate вернуть другой день

У меня есть 2 сервера с одним и тем же кодом проекта, но я получаю другой выходной день из форматирования yii на производственном сервере, и я понятия не имею, какая конфигурация может вызвать эту разницу …

это отличается от темы, обсуждаемой здесь Yii2 форматер показать другую дату потому что я думаю, что это не разница часовых поясов / часов, а его выходы всегда За 1 день до правильная дата.

В контроллере у меня есть данные модели из столбца MySQL, который является datetime.
Затем я записываю разные строки форматирования, но всегда получаю одну и ту же дату, За 1 день до.

\Yii::trace('fechaEntrega in BD: '.$model->fechaEntrega);
$fmt = 'php:d-m-Y';
\Yii::trace('fechaEntrega formatter as date: '.$fmt.': '.\Yii::$app->formatter->asDate($model->fechaEntrega, $fmt));
$fmt = 'd-M-Y';
\Yii::trace('fechaEntrega formatter as date: '.$fmt.': '.\Yii::$app->formatter->asDate($model->fechaEntrega, $fmt));
$fmt = 'php:Y-m-d';
\Yii::trace('fechaEntrega formatter as date: '.$fmt.': '.\Yii::$app->formatter->asDate($model->fechaEntrega, $fmt));
$formatter = \Yii::$app->formatter;
\Yii::trace('Formatter config: '.\yii\helpers\VarDumper::dumpAsString(\Yii::$app->formatter));

Я получаю следующий вывод с рабочего сервера:

fechaEntrega in BD: 2016-08-23 00:00:00
fechaEntrega formatter as date: php:d-m-Y: 22-08-2016
fechaEntrega formatter as date: d-M-Y: 22-8-2016
fechaEntrega formatter as date: php:Y-m-d: 2016-08-22

Formatter config: yii\i18n\Formatter#1 (
[nullDisplay] => '<span class=\"not-set\">(no definido)</span>'
[booleanFormat] => [ 0 => 'No' 1 => 'Sí' ]
[locale] => 'es-CL'
[timeZone] => 'America/Santiago'
[defaultTimeZone] => 'America/Santiago'
[dateFormat] => 'php:d-m-Y'
[timeFormat] => 'medium'
[datetimeFormat] => 'medium'
[calendar] => null
[decimalSeparator] => null
[thousandSeparator] => null
[numberFormatterOptions] => []
[numberFormatterTextOptions] => []
[numberFormatterSymbols] => []
[currencyCode] => null
[sizeFormatBase] => 1024
[yii\i18n\Formatter:_intlLoaded] => true
[yii\i18n\Formatter:_dateFormats] => [ 'short' => 3 'medium' => 2 'long' => 1 'full' => 0 ]
[yii\base\Component:_events] => []
[yii\base\Component:_behaviors] => null
)

Тестовый сервер работает нормально, он правильно форматирует datetime … только производственный сервер имеет эту разницу, а yii config — то же самое

единственное различие между двумя серверами, но я не думаю, что это может вызвать проблему, это время RTC, когда я получаю команду timedatectl:

на тестовом сервере:

$ timedatectl
Local time: mié 2016-08-17 10:03:29 CLST
Universal time: mié 2016-08-17 13:03:29 UTC
RTC time: mié 2016-08-17 09:04:02
Time zone: America/Santiago (CLST, -0300)
Network time on: yes
NTP synchronized: no
RTC in local TZ: yes

$ date
mié ago 17 10:07:29 CLST 2016

И в производственном сервере:

# timedatectl
Local time: Wed 2016-08-17 10:03:16 CLST
Universal time: Wed 2016-08-17 13:03:16 UTC
RTC time: Wed 2016-08-17 13:03:16
Timezone: America/Santiago (CLST, -0300)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: yes
Last DST change: DST began at
Sat 2016-08-13 23:59:59 CLT
Sun 2016-08-14 01:00:00 CLST
Next DST change: DST ends (the clock jumps one hour backwards) at
Sat 2017-05-13 23:59:59 CLST
Sat 2017-05-13 23:00:00 CLT

# date
Wed Aug 17 10:07:18 CLST 2016

Также у меня включено расширение Intl, как сказано в документации по Yii Formatter. http://www.yiiframework.com/doc-2.0/guide-output-formatting.html#localizing-data-format

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]