通过Yii2格式化程序使用日期时间格式

时间:2016-07-01 05:40:03

标签: php datetime yii2 date-formatting

我使用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是正确的。任何人都可以帮忙,我的代码出了什么问题?

1 个答案:

答案 0 :(得分:1)

我认为这与2014年(10月26日)俄罗斯全年恢复标准时间有关。请参阅this article以获取参考:

  

大多数俄罗斯人将进入永久标准时间,或“冬季时间”,   通过在2014年10月26日1小时后设置他们的时钟。这是   同一天,大多数欧洲人结束夏令时(DST)。

检查date.timezone配置中的php.ini设置和使用的PHP版本,似乎已在以后的版本中修复。

同时检查tzdatapecl timezonedb

也许this forum discussion也会有所帮助,即使是俄语。