Yii框架时间()与行为时间()不同



我试图更新用户表中的de last_login_time,但函数的time()始终比updatedTime行为高5h

public function behaviors()
{
return array(
'timestamps' => array(
'class' => 'zii.behaviors.CTimestampBehavior',
'createAttribute' => 'create_time',
'updateAttribute' => 'update_time',
'setUpdateOnCreate' => true,
)
);
}

我更新last_login_time的功能非常简单:

private function userLogedin()
{
$user = User::model()->findByPk($this->auth->user_id);
$user->last_login_time = date('Y-m-d H:i:s',time());
return $user->save();
}

我怎么能有与行为相同的时间呢?有没有一种更友好的方式来创建这种更新?

非常感谢!我是Yii的新手,这是我的第一个应用程序,所以请友善^^

CTimestampBehavior根据NOW()报告的数据库服务器的本地时间设置时间。您的代码根据web服务器的本地时间设置时间,如time()所报告的。

两台服务器之间的时区差异应解释5小时的差异。

如果你想获得与CTimestampBehavior相同的效果,并且语法与你自己的代码相似,你必须使用CDbExpression:

$user = User::model()->findByPk($this->auth->user_id);
$user->last_login_time = new CDbExpression('NOW()');
return $user->save();

这里还有一个同样的例子。