为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 在同一日期创建

Laravel 在同一日期创建

PHP
繁星点点滴滴 2023-12-15 15:10:01
我正在尝试获取在同一日期创建的 users,但我的数据库上的时间采用 UTC 格式,因此当 user 是在 10:00 pm(当地时间)创建的,它存储为第二天的 01:00 am,所以当我使用 whereDate('created_at', '=', Carbon::now('America/Sao_Paulo')) 时,它不会得到 user.
查看完整描述

3 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

尝试whereBetween改为

Model::whereBetween('created_at', [Carbon::now()->startOfDay(), Carbon::now()->endOfDay()])->get();

其他可能的方式:

where('created_at', '>=', date('Y-m-d').' 00:00:00'));
whereDate('created_at', '=', date('Y-m-d'));
whereDate('created_at', '=', Carbon::today()->toDateString());


查看完整回答
反对 回复 2023-12-15
?
交互式爱情

TA贡献1712条经验 获得超3个赞

如果您想获得在同一日期创建的用户,为什么不简单地按created_at进行分组,那么您就不必关心这些细节。



查看完整回答
反对 回复 2023-12-15
?
绝地无双

TA贡献1946条经验 获得超4个赞

我首先获得了当地时间的开始/结束时间,然后将其转换回 UTC。一个>


$start_of_day = Carbon::now('America/Sao_Paulo')->startOfDay()->utc();

$end_of_day = Carbon::now('America/Sao_Paulo')->endOfDay()->utc();

return User::whereBetween('created_at',[$start_of_day,$end_of_day])->get();


查看完整回答
反对 回复 2023-12-15
  • 3 回答
  • 0 关注
  • 132 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信