ホームページ >PHPフレームワーク >Laravel >2つの間のlaravelクエリ
Laravel では、クエリ ステートメントは、Laravel フレームワークで最も一般的に使用される関数の 1 つです。データ量とクエリ要件の違いにより、2 つの日付間のレコードをクエリする必要がある状況がよく発生します。 Laravel フレームワークが提供するクエリビルダーは非常に強力ですが、その賢い使い方をマスターしていないと、クエリ文を作成する過程でいくつかの問題が発生します。この記事では、Laravel で 2 つの日付間のレコードをクエリする方法を紹介します。
まず、Laravel では、クエリ ビルダーの whereBetween() メソッドを使用して 2 つの日付の間のレコードを検索できることを明確にしてください。 whereBetween() メソッドは、フィールド名と配列という 2 つのパラメーターを受け入れます。このうち、配列の 2 つの要素は 2 つの日付を表します。
たとえば、users テーブルの登録日が特定の時間範囲内にあるユーザーをクエリする場合、次のコードを使用できます。
$users = DB::table('users') ->whereBetween('created_at', ['2021-06-01', '2021-06-30']) ->get();
上記のコードは、register_date を含むユーザー情報を返します。 2021年6月。このうち、created_at は users テーブルの日付フィールドであり、whereBetween() メソッドでこのフィールドの値の範囲を指定します。 get() メソッドはクエリ結果を取得するために使用され、クエリ結果を含む Collection オブジェクトを返します。
whereBetween() メソッドに加えて、whereDate() メソッドを使用して特定の日のレコードをクエリすることもできます。たとえば、登録日が特定の日であるユーザーについて users テーブルをクエリする場合、次のコードを使用できます。
$users = DB::table('users') ->whereDate('created_at', '2021-06-01') ->get();
上記のコードは、regist_date が 2021 年 6 月 1 日であるユーザー情報を返します。 whereDate() メソッドは、created_at フィールドの値が 2021 年 6 月 1 日であるレコードを指定します。 get() メソッドは、クエリ結果を取得するためにも使用されます。
whereBetween() メソッドと whereDate() メソッドに加えて、Laravel は日付をクエリするための他のメソッドもいくつか提供します。これらのメソッドには、whereDay()、whereMonth()、where Year()、whereTime()、whereHour() などが含まれます。これらのメソッドは、特定の日、特定の月、特定の年、特定の時刻などの情報をクエリするために使用されます。使用方法はwhereBetween()メソッドやwhereDate()メソッドと同様なので、ここでは詳しく説明しません。
Laravel のクエリビルダーの日付クエリメソッドは、デフォルトで現地時間ではなく UTC 時間を使用することに注意してください。これは、現地時間が何であっても、クエリは UTC 時間で計算されることを意味します。したがって、日付クエリを実行するときは、渡される日付パラメータが UTC 時間と一致していることを確認する必要があります。
実際のアプリケーションでは、タイム ゾーンの問題によるクエリ エラーを回避するために、通常、クエリの前に、または構成ファイルでタイム ゾーンを指定します。 Laravel は、タイムゾーンをグローバルに構成する方法、つまり config/app.php ファイルでタイムゾーンを設定する方法を提供します。
Laravel で時間を UTC 時間に変換する方法は次のとおりです。
$date = new Carbon('2021-06-01 12:00:00', 'Asia/Shanghai'); $utcDate = $date->utc();
上記のコードは、現地時間「2021-06-01 12:00:00」を UTC 時間に変換します。 $utcDate 変数を指定して値を割り当てます。 Carbon は Laravel に組み込まれている日付と時刻を処理するクラスで、非常に使いやすいです。このクラスは、さまざまなシナリオのニーズに簡単に対応できるさまざまな時間変換メソッドを提供します。
要約すると、この記事では、Laravel で 2 つの日付間のレコードをクエリする方法を紹介します。クエリ ビルダーを使用して日付クエリを実行する場合は、タイム ゾーンの設定と、渡された日付パラメータが UTC 時間と一致しているかどうかに注意する必要があります。クエリ ビルダーを柔軟に使用することで、開発をより簡潔かつ効率的に行うことができます。
以上が2つの間のlaravelクエリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。