Laravel で日付を期間で検索・・!したいことありますよね。
whereBetween
whereBetween を使います。
User::whereBetween('created_at', ['2022-01-01 00:00:00', '2022-12-31 00:00:00'])->get();
Carbon をつかう
1 ヶ月前から今日まで取りたい・・・場合は、Carbon を使って、日付を取得します。
$to = Carbon::today();
$from = $to->copy()->subMonths(1);
$between = [$from->format('Y-m-d 00:00:00'), $to->format('Y-m-d 00:00:00')];
User::whereBetween('created_at', $between)->get();
発行される SQL は以下のようになります。
select * from `users` where `created_at` between ? and ?
DATE() をつかう
日付だけで取得したい場合は、DATE() をつかいます。
$to = Carbon::today();
$from = $to->copy()->subMonths(1);
$between = [$from->format('Y-m-d'), $to->format('Y-m-d')];
User::whereBetween(DB::raw("DATE(created_at)"), $between)->get();
発行される SQL は以下のようになります。
select * from `users` where DATE(created_at) between ? and ?