Laravel 如何使用MySQL函数将模型属性设置为当前日期格式?

Laravel 如何使用MySQL函数将模型属性设置为当前日期格式?,laravel,orm,laravel-5,eloquent,Laravel,Orm,Laravel 5,Eloquent,我有一个模型Users,每次用户在loggedin\u的字段中的日志都会更新 $user = User::find(1); $user->token = md5(time()); $user->loggedin_at = date('Y-d-m H:i:s'); $user->save(); return $user; 但我已经从经验中了解到,有时候MySQL时间和PHP时间之间存在差异。因此,当您使用类似于time>NOW()-INTERVAL 1 HOUR的比较时,它

我有一个模型
Users
,每次用户在
loggedin\u的
字段中的日志都会更新

$user = User::find(1);

$user->token = md5(time());
$user->loggedin_at = date('Y-d-m H:i:s');
$user->save();

return $user;
但我已经从经验中了解到,有时候MySQL时间和PHP时间之间存在差异。因此,当您使用类似于
time>NOW()-INTERVAL 1 HOUR
的比较时,它现在可能会正常工作,因为您可以从PHP设置日期,并从MySQL进行比较

无论如何,我的问题是我想用
NOW()
来更新我的日期。我试着

$user->loggedin_at = DB::raw('NOW()');
但这是行不通的。通过调查有说服力的消息来源,我成功地解决了这个问题

$user->loggedin_at = new \Carbon\Carbon();
这就是雄辩用来改变时代的东西

  • 如何使用
    NOW()
    设置时间
  • 我应该使用
    NOW()
    还是继续使用碳纤维更好

  • 最好使用碳,这就是它的用途。Laravel开箱即用,在created_at和Update_at中使用

    如果您使用Carbon,还可以使用config/app.PHP中的时区配置来同步PHP的时间和Carbon的“现在”

    此外,如果你想改变你从碳中得到的结果,你可以这样做:

    $now = Carbon::now(new DateTimeZone('Europe/London'));
    
    //can also be passed as a string
    $now = Carbon::now('Europe/London');
    

    我认为使用碳更好。谢谢你,非常感谢你的意见。