Php GridView yii2中的时区错误
你好,我的时区有点问题。我的时区是亚洲/新西伯利亚 在index.php中设置时区和yii格式化程序输出:Php GridView yii2中的时区错误,php,gridview,yii2,Php,Gridview,Yii2,你好,我的时区有点问题。我的时区是亚洲/新西伯利亚 在index.php中设置时区和yii格式化程序输出: \Yii::$app->formatter->timeZone // Asia/Novosibirsk 因此,在yii\grid\GridViewwinget中,我有相同日期的下一列(date\u add): 输出不同的值: 只有第三列是正确的,即12月14日(原始日期为2016-12-14 17:00:00) 我假设GridView有自己的时区(或formatter类实例
\Yii::$app->formatter->timeZone // Asia/Novosibirsk
因此,在yii\grid\GridViewwinget中,我有相同日期的下一列(date\u add):
输出不同的值:
只有第三列是正确的,即12月14日(原始日期为2016-12-14 17:00:00)
我假设GridView有自己的时区(或formatter类实例)GridView正在使用
formatter
组件(您可以在GridView中或在应用程序配置中更改整个应用程序的设置),所以只需修改时区,一切都应该正常工作
仅对于GridView设置:
<?= GridView::widget([
// ...
'formatter' => [
'class' => 'yii\i18n\Formatter',
'timeZone' => 'Asia/Novosibirsk'
],
// ...
]) ?>
或应用范围:
return [
// ...
'timeZone' => 'Asia/Novosibirsk'
// ...
];
我已经在主配置属性时区,但它没有效果\Yii::$app->formatter返回正确的时区如果我直接在GridView中输入格式化程序配置,它太无效了您是否更改了格式化程序组件中的
defaultTimeZone
?数据库的时区是什么?默认时区是UTC。但我假设MySQL服务器上的时区是GMT+0GMT+0,它给出的结果与UTC相同。我猜你的数据库在不同的时区。请再核对一下。使用DateTime
时,日期会自动转换为系统的时区。
return [
// ...
'components' => [
// ...
'formatter' => [
'class' => 'yii\i18n\Formatter',
'timeZone' => 'Asia/Novosibirsk'
],
],
];
return [
// ...
'timeZone' => 'Asia/Novosibirsk'
// ...
];