在最近3个小时内雄辩获取记录

vij*_*ana 7 php laravel eloquent

我需要获取在过去3小时内插入到当前(现在)的所有记录.我正在使用laravel框架(eloquent orm).

我试过这个发现在这里

$lb = \DB::table('myTable')->whereRaw('created_at = DATE_ADD(NOW(), INTERVAL -3 HOUR');
Run Code Online (Sandbox Code Playgroud)

但它返回NULL.有什么方法可以使用雄辩但不是Raw Query吗?

任何帮助,将不胜感激.

Chr*_*ris 21

Laravel附带Carbon,一个处理日期的漂亮库,可以与Eqlouent结合使用.

例:

\DB::table('myTable')
    ->where('created_at', '>', 
        Carbon::now()->subHours(3)->toDateTimeString()
    );
Run Code Online (Sandbox Code Playgroud)

更多信息

有关更多有趣的约会方法,请查看碳上的这些文档 http://carbon.nesbot.com/docs/#api-addsub


Alo*_*tel 8

我们可以使用PHP DateTime。像这样,

$date = new \DateTime();
$date->modify('-3 hours');
$formatted_date = $date->format('Y-m-d H:i:s');
$lb = \DB::table('myTable')->where('created_at', '>',$formatted_date);
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我们正在做的是使用PHP创建日期字符串并在查询中使用它。