【问题标题】:Yii framework time() not the same as the behavior time()Yii 框架 time() 与行为 time() 不一样
【发布时间】:2012-11-19 18:46:33
【问题描述】:

我尝试在我的用户表中更新 de last_login_time,但 time() 总是比函数的 updatedTime 行为高 5 小时

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 的新手,这是我的第一个应用程序,请多多关照^^

【问题讨论】:

    标签: php time frameworks yii


    【解决方案1】:

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

    两台服务器之间的时区差异应考虑到 5 小时的差异。

    如果你想达到与CTimestampBehavior相同的效果,语法与你自己的代码相似,你将不得不使用CDbExpression

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

    还有一个相同的例子here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      • 1970-01-01
      • 1970-01-01
      • 2021-03-03
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多