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: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
'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.
],
请阅读此内容并参考
希望它能起作用。我也有同样的问题