laravel - 星期天的碳开始和星期六的 endOfWeek 不工作
问题描述
我需要选择一个特定的用户每周最高分。我正在使用 Carbon,我强迫 Carbon startofWeek 到 SUNDAY 和 endOfWeek 到 SATURDAY。
这是我的数据库数据
id user_id score created_at updated_at
43 33 88 2020-02-23 00:00:00 NULL
44 33 15 2020-02-24 00:00:00 NULL
45 33 42 2020-02-24 00:00:00 NULL
46 33 86 2020-02-25 00:00:00 NULL
47 33 100 2020-02-04 00:00:00 NULL
这是我的代码
$week = GameScore::select(max('score')
->where('created_at', '>=', Carbon::now()->startOfWeek(Carbon::SUNDAY))
->where('created_at', '<=', Carbon::now()->endOfWeek(Carbon::SATURDAY))
->where('user_id', $user->id)
->get();
根据我的数据,我需要得到 88 分作为结果,因为这个分数是在 2 月 23 日星期日获得的,这是本周开始的,直到今天所有其他分数都不高于这个分数。
解决方案
在您的代码中,您需要在比较时指定日期格式,
Carbon::now()->endOfWeek(Carbon::SATURDAY)->format('Y-m-d H:i:s');
推荐阅读
- html - 在 Open edX 中查询关于上传
- java - 如何调用这个泛型方法?
- ios - 如何快速检查时间重叠?
- node.js - 在 NodeJS 中访问 Laravel .env 文件配置
- javascript - 复选框 .checked 属性始终为 false
- d3.js - D3:创建响应范围条形图
- javascript - botbuilder v4 nodejs在提示对话框中添加快速回复facebook messenger
- objective-c - 游戏中心多人配对问题
- image-segmentation - 流域分割算法必然会失败的情况有哪些?
- kubernetes - 如何删除 Kubeflow 集群?