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

时间:2015-10-12 14:07:09

标签: laravel orm laravel-5 eloquent

我有一个模型int price_final = (price - (price - 0.01); 每次用户登录Users字段时都会更新。

loggedin_at

但我从经验中已经知道,MySQL时间和PHP时间之间有时存在差异。因此,当您使用$user = User::find(1); $user->token = md5(time()); $user->loggedin_at = date('Y-d-m H:i:s'); $user->save(); return $user; 之类的比较时,它现在可能正常工作,因为您从PHP设置日期并将其与MySQL进行比较。

无论如何,我的问题是我想用time > NOW() - INTERVAL 1 HOUR来更新我的约会对象。我试试

NOW()

但这不起作用。通过查看Eloquent来源,我已经设法将其用于工作

$user->loggedin_at = DB::raw('NOW()');

这是Eloquent用来改变时间的东西。

  1. 如何使用$user->loggedin_at = new \Carbon\Carbon(); 设置时间?
  2. 我应该使用NOW()还是更好地继续使用Carbon?

1 个答案:

答案 0 :(得分:2)

使用碳更好,它就是它的用途。 Laravel开箱即用,并在created_at和updated_at中使用它。

如果你使用Carbon,你也可以同步PHP的时间和Carbon" NOW"使用config / app.php。

中的时区配置

此外,如果您想更改从Carbon获得的结果,您可以执行以下操作:

$now = Carbon::now(new DateTimeZone('Europe/London'));

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