Laravel Eloquentを使用して3か月間のデータを取得する方法


  1. whereBetweenメソッドを使用する方法:
use Carbon\Carbon;
$startDate = Carbon::now()->subMonths(3);
$endDate = Carbon::now();
$data = YourModel::whereBetween('created_at', [$startDate, $endDate])->get();

この方法では、Carbonクラスを使用して現在の日時から3か月前の日時を計算し、whereBetweenメソッドを使用してcreated_atカラムの範囲を指定します。

  1. whereメソッドとdateメソッドを組み合わせる方法:
use Carbon\Carbon;
$endDate = Carbon::now();
$startDate = $endDate->copy()->subMonths(3)->startOfDay();
$data = YourModel::where('created_at', '>=', $startDate)
                ->where('created_at', '<=', $endDate)
                ->get();

この方法では、Carbonクラスを使用して現在の日時から3か月前の日時を計算します。その後、whereメソッドを使用してcreated_atカラムが指定した範囲内にあるデータを取得します。

  1. whereRawメソッドを使用する方法:
use Carbon\Carbon;
$endDate = Carbon::now();
$startDate = $endDate->copy()->subMonths(3)->startOfDay();
$data = YourModel::whereRaw('created_at >= ? AND created_at <= ?', [$startDate, $endDate])->get();

この方法では、whereRawメソッドを使用してSQLの条件式を直接指定します。?を使用してプレースホルダを指定し、配列で値を渡します。

これらの方法を使用することで、LaravelのEloquent ORMを介してデータベースから3か月間のデータを取得することができます。適切なモデルとカラムを使用してコードを適用してください。