You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Laravel Eloquent获取昨日数据?

解决Laravel获取昨日数据的几种方法

根据你提供的现有代码(匹配dob字段的月日为今日),以下是获取昨日对应数据的可行方案:

场景1:匹配dob的月日为昨日(如生日类数据)

方法1:替换Carbon实例为yesterday()

沿用你原有的写法逻辑,只需将Carbon::now()替换为Carbon::yesterday()即可:

->whereMonth('dob', Carbon::yesterday()->format('m'))
->whereDay('dob', Carbon::yesterday()->format('d'))
->paginate(10)

方法2:用whereRaw简化SQL条件

通过原生SQL函数直接匹配月日,代码更简洁直观:

->whereRaw('MONTH(dob) = ? AND DAY(dob) = ?', [Carbon::yesterday()->month, Carbon::yesterday()->day])
->paginate(10)

场景2:匹配完整日期为昨日(如昨日创建的数据)

如果你的需求是获取日期字段(如created_at)属于昨天完整时间段的数据,推荐以下更精准的写法:

方法1:使用whereDate

Laravel内置的whereDate方法可直接匹配日期:

->whereDate('created_at', Carbon::yesterday())
->paginate(10)

方法2:用whereBetween指定精确时间范围

如果需要限定到昨天00:00:00至23:59:59的完整区间,可使用whereBetween:

->whereBetween('created_at', [
    Carbon::yesterday()->startOfDay(),
    Carbon::yesterday()->endOfDay()
])
->paginate(10)

内容的提问来源于stack exchange,提问作者Emmanuel Iyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 11:55:56