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

Laravel如何统计d/m/Y格式date字段中今日的总记录数量

问题原因

Laravel 提供的whereDate方法默认会将字段值按照Y-m-d的标准日期格式解析后进行对比,你数据库中date字段存储格式为d/m/Y,格式不匹配导致条件判断失效,才会返回所有记录的统计结果。

修正方案

方案1:字段为字符串类型(varchar/text)时直接匹配

你存的字段本身就是d/m/Y格式的字符串,不需要用whereDate方法,直接用普通where条件精确匹配即可,同时直接调用查询构造器的count()方法,避免先查询全量集合再统计,优化性能:

public function home(){
    $appointments = Appointment::where('date', Carbon::today()->format('d/m/Y'))->count();
    return view('panel.home',['appointments'=>$appointments]);
}

方案2:长期优化建议

如果你的业务需要经常对date字段做日期范围查询、排序等操作,建议将字段类型修改为date/datetime,按照标准Y-m-d格式存储,后续可以直接使用whereDate、whereMonth等Laravel提供的日期查询方法,兼容性和性能都会更好。

注意事项

请先确认config/app.php中的timezone配置和你业务使用的时区一致,避免时区偏差导致日期匹配错误,比如国内业务可配置为Asia/Shanghai。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 14:45:05