我的数据库字段中有。类型:TIMESTAMP(示例2015-12-23 15:38:32)。我在GridView中得到了这个时间。
[
'attribute' => 'date',
'format' => 'datetime',
],
配置的格式化程序:
'formatter' => [
'dateFormat' => 'php:d.m.Y',
'datetimeFormat' => 'php:d.m.Y H:i:s',
'defaultTimeZone' => 'Europe/Kiev',
'timeZone' => 'Europe/Kiev',
],
我从数据库时间中获得时间+1。(2015-12-23 15:38:32+1小时=2015-12-23 16:38:32)。我试过了。没有什么帮助。
您可以在config/main.php中的afterOpen事件中,在db组件中配置db时区:
'db' => [
'class' => 'yiidbConnection',
'dsn' => 'mysql:host=localhost;dbname=db_name',
'username' => 'db_username',
'password' => 'db_password',
'charset' => 'utf8',
'on afterOpen' => function($event) {
$event->sender->createCommand("SET time_zone = '+00:00'")->execute();
}
],