Laravel 在同一日期创建

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

繁星点点滴滴
浏览 76回答 3
3回答

幕布斯6054654

尝试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());

交互式爱情

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

绝地无双

我首先获得了当地时间的开始/结束时间,然后将其转换回 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();
打开App,查看更多内容
随时随地看视频慕课网APP