Laravel Eloquent 查找日期超过 2 天的行

Posted

技术标签:

【中文标题】Laravel Eloquent 查找日期超过 2 天的行【英文标题】:Laravel Eloquent find rows where date older than 2 days 【发布时间】:2019-02-25 15:52:08 【问题描述】:

我正在尝试根据“created_at”字段获取早于(例如)2 天的行。

我正在使用 Laravel Eloquent。有人可以帮我解决这个问题吗?

【问题讨论】:

嗨@fransyozef,你能发布你的代码吗? 【参考方案1】:

您可以使用whereDate() eloquent 方法对日期运行查询。

Model::whereDate('created_at', '<=', now()->subDays(2)->setTime(0, 0, 0)->toDateTimeString())->get();

now() 是一个 laravel 辅助函数,用于获取当前日期和时间的 carbon 实例。

注意:我们使用setTime() 方法设置time,使其从一天开始就starts

更新:也可以使用-&gt;startOfDay()

【讨论】:

【参考方案2】:

您可以使用Carbon subDays(),如下所示:

$data = YOURMODEL::where('created_at', '<=', Carbon::now()->subDays(2)->toDateTimeString())->get();

【讨论】:

以上是关于Laravel Eloquent 查找日期超过 2 天的行的主要内容,如果未能解决你的问题,请参考以下文章

Laravel - 使用 eloquent 在开始日期和结束日期之间选择行

Laravel 6.0 Eloquent - 按日期和状态排序

Laravel Eloquent 比较日期时间字段中的日期

Laravel 5.2 Eloquent 主键作为多键

Laravel Eloquent 方法 updateOrCreate 更新时超过执行时间

Laravel - Eloquent - 获得没有外键的关系