我使用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-config是正确的。任何人都可以帮忙,我的代码出了什么问题?
答案 0 :(得分:1)
我认为这与2014年(10月26日)俄罗斯全年恢复标准时间有关。请参阅this article以获取参考:
大多数俄罗斯人将进入永久标准时间,或“冬季时间”, 通过在2014年10月26日1小时后设置他们的时钟。这是 同一天,大多数欧洲人结束夏令时(DST)。
检查date.timezone
配置中的php.ini
设置和使用的PHP版本,似乎已在以后的版本中修复。
同时检查tzdata
和pecl timezonedb
。
也许this forum discussion也会有所帮助,即使是俄语。