2016-07-01 156 views
1

我有使用Yii2格式化程序的問題。我的配置 是通過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'); 

它的工作正確的 - 顯示2014年6月15日14:10。 當我嘗試

echo Yii::$app->formatter->asDateTime('15-06-2015 14:10:10'); 

它的工作不正確 - 顯示2015年6月15日15:10。當我設定2016年時,它的工作原理也沒有改正。我試圖

echo date('d.m.Y H:i', strtotime('15-06-2015 14:10:10')) 

它對2015年和2016年的正確工作,PHP-config是正確的。任何人都可以幫忙,我的代碼有什麼問題?

回答

1

我認爲這與2014年(10月26日)在俄羅斯全年恢復標準時間有關。僅供參考,請參閱this article

大多數俄羅斯將移動到永久的標準時間,或「冬令時」, 設定自己的時鐘1小時回到2014年10月26日,這是 同日大多數歐洲人結束夏時制節省時間(DST)。

檢查你php.ini配置和PHP版本使用date.timezone設置,好像它是固定在以後的版本。

另請檢查tzdatapecl timezonedb

也許this forum discussion也會有幫助,即使它是俄語。