如何在Laravel中查询created_at字段

时间:2016-03-08 05:26:58

标签: laravel model laravel-5

当试图查找created_at时间大于某个值的所有记录时,它似乎不起作用。

例如我试过这个:

return Foo::where('created_at', '>', '1457408361')->get();

但它不断返回所有记录!

2 个答案:

答案 0 :(得分:2)

您始终可以使用Carbon转换UNIX时间戳:

Foo::where('created_at', '>=', Carbon::createFromTimestamp(1457408361))->get();

因此,您可以将整数转换为Carbon实例并按上述方式进行比较。

您可以在此处阅读有关碳的信息:http://carbon.nesbot.com/docs/

答案 1 :(得分:2)

使用whereDate()查询方法:

$date = Carbon::yesterday(); // Create date however you want

Foo::whereDate('created_at', '>', $date);

如果您经常进行这些类型的查询,我会考虑将其包装到查询范围中:

use DateTimeInterface;

class Foo extends Model
{
    public function scopeCreatedAfter(DateTimeInterface $date)
    {
        return $query->whereDate('created_at', '>', $date);
    }
}

用法:

Foo::createdAfter($date)->get();