yii2时区格式化程序中的问题

yii2时区格式化程序中的问题,yii2,Yii2,在php.ini中,时区是UTC。系统时区为UTC。yii默认时区是UTC。但我的datetime属性在保存到db之前会转换为我的时区“Asia/Kolkata” 例如:UTC时间12:00 我的投入17.30小时 我在db中预期的时间是12:00,在view中预计的时间是17:30 但我在db里得到的是17:30,而在视图中我得到的是23:00 web.php: 'formatter' => [ 'class' => 'yii\i18n\F

在php.ini中,时区是UTC。系统时区为UTC。yii默认时区是UTC。但我的datetime属性在保存到db之前会转换为我的时区“Asia/Kolkata”

例如:UTC时间12:00 我的投入17.30小时 我在db中预期的时间是12:00,在view中预计的时间是17:30 但我在db里得到的是17:30,而在视图中我得到的是23:00

web.php:

'formatter' => 
        [
            'class' => 'yii\i18n\Formatter',
            'dateFormat' => 'php:d-m-Y',
            'datetimeFormat' => 'php:d-m-Y H:i a',
            'timeFormat' => 'php:H:i A',
            'timeZone' => 'Asia/Kolkata',
        ],

您可以选择使用预定义格式保存特定的时间戳值。让我们假设您已经在后端将datetime字段定义为整数,并且希望将其另存为整数。可以这样设置行为

public function behaviors()
{
    return [
        'timestamp' => [
            'class' => TimestampBehavior::className(),
            'attributes' => [
                ActiveRecord::EVENT_BEFORE_INSERT => 'creation_time',
                ActiveRecord::EVENT_BEFORE_UPDATE => 'update_time',
            ],
            'value' => function() { return date('U'); // unix timestamp },
        ],
    ];
}
您可以配置为控制全局日期格式以显示您的区域设置。您可以在您的配置文件中设置这样的内容,您可以跨

'formatter' => 
        [
            'class' => 'yii\i18n\Formatter',
            'dateFormat' => 'php:d-m-Y',
            'datetimeFormat' => 'php:d-m-Y H:i a',
            'timeFormat' => 'php:H:i A',
            'defaultTimeZone' OR 'timeZone' => 'Asia/Calcutta', //global date formats for display for your locale.
        ],
请阅读此内容并参考


希望它能起作用。

我也有同样的问题