是UTC。系统时区是UTC。 yii defaultTimeZone是UTC。但是在保存到数据库之前,我的datetime属性被转换为我的时区“Asia / Kolkata”。
例如:UTC时间12:00Hrs 我的输入17.30hrs 我对db的期望是12:00hrs,在视图中是17.30hrs 但我在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',
],
答案 0 :(得分:1)
您可以选择使用预定义格式保存特定时间戳值。因此,让我们将后端中的日期时间字段定义为INTEGER,并且您希望将其保存为整数。您可以像这样设置
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 },
],
];
}
您可以配置yii\i18n\formatter来控制您的区域设置显示的全局日期格式。您可以在配置文件中设置可以通过
访问的类似内容'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.
],
希望它的作品。