时间戳错误,显示01/01/1970 03:33


Yii 2.0 timestamp wrong showing 01/01/1970 03:33

所以我使用Yii 2.0 TimestampBehavior,但它显示我错误的日期,创建日期总是01/01/1970 03:33和更新日期01/01/1970 03:00

public function behaviors()
{
return [
    'timestamp' => [
        'class' => TimestampBehavior::className(),
        'attributes' => [
            ActiveRecord::EVENT_BEFORE_INSERT => 'create_time',
            ActiveRecord::EVENT_BEFORE_UPDATE => 'update_time',
        ],
        'value' => new Expression('NOW()'),
    ],
];
}

SQL模式定义

'id' => 'INT PRIMARY KEY AUTO_INCREMENT',
'title' => 'VARCHAR(255)',
'data' => 'TEXT',
'create_time' => 'INT',
'update_time' => 'INT'

如果您将日期列定义为INT,则不能使用NOW()来设置它们,因为NOW()返回类型为"date"的值。您可以将列定义为DATETIME并保持PHP代码不变,或者使用PHP函数time()来获取日期值。这是默认行为,所以不要在行为配置中指定'value':

'timestamp' => [
    'class' => 'yii'behaviors'TimestampBehavior::className(),
    'attributes' => [
        ActiveRecord::EVENT_BEFORE_INSERT => 'create_time',
        ActiveRecord::EVENT_BEFORE_UPDATE => 'update_time',
    ],
],