ThinkPHP は、開発者が PHP 言語に基づいてアプリケーションを迅速に構築できるようにするオープン ソースの Web アプリケーション開発フレームワークです。実際のアプリケーションでは、時間クエリは一般的な要件ですが、この記事では、ThinkPHP フレームワークで時間クエリを実行する方法を紹介します。
タイムスタンプは、グリニッジ標準時 1970 年 1 月 1 日の 0:00:00 から現在までの合計秒数を指します。 ThinkPHP では、timestamp() 関数を直接使用して現在時刻のタイムスタンプを取得することも、strtotime() 関数を使用して時刻をタイムスタンプに変換することもできます。
たとえば、過去 1 時間以内のデータをクエリできます:
$last_hour = time() - 3600; $data = Db::table('user')->where('create_time', '>', $last_hour)->select();
上の例では、time() 関数は現在時刻のタイムスタンプを取得し、3600 を減算して 1 を取得します。秒数時間前のタイムスタンプ。最後に、where() 関数を使用して、基準を満たすレコードをフィルターします。
日付クエリでは、日付書式設定関数を使用する必要があります。 ThinkPHP では、DateTime クラスの date() 関数と format() メソッドを使用して日付をフォーマットできます。
たとえば、今日より前のレコードをクエリできます:
$today = date('Y-m-d'); $data = Db::table('user')->where('create_time', '<', $today)->select();
上の例では、date() 関数が現在の日付を取得し、where() 関数を使用して日付をフィルターします。現在の日付のレコードよりも小さい作成時刻 (create_time)。
期間クエリでは、クエリ範囲を制限するために between ステートメントを使用する必要があります。 ThinkPHP では、whereTime() 関数または whereBetween() 関数を使用して期間クエリを実装できます。
たとえば、昨日から今日までのレコードをクエリできます:
$start_time = date('Y-m-d 00:00:00', strtotime('-1 day')); $end_time = date('Y-m-d 23:59:59'); $data = Db::table('user')->whereTime('create_time', 'between', [$start_time, $end_time])->select();
上の例では、strtotime() 関数は昨日の開始時刻を生成し、timestamp() 関数は次のようにすることもできます。タイムスタンプを取得するために使用されます。次に、whereTime() 関数を使用して、時間範囲に一致するレコードをフィルターします。
時間間隔クエリでは、where() 関数と between ステートメントを組み合わせて使用する必要があります。 ThinkPHP では、whereBetweenTime() 関数を使用して時間間隔クエリを実装することもできます。
たとえば、5 月 1 日から 6 月 1 日までのレコードをクエリできます。
$start_time = date('Y-m-d H:i:s', strtotime('2019-05-01')); $end_time = date('Y-m-d H:i:s', strtotime('2019-06-01')); $data = Db::table('user')->where('create_time', 'between', [$start_time, $end_time])->select();
上の例では、strtotime() 関数を使用して開始時刻と終了時刻を取得し、 where () 関数と between ステートメントを使用して、要件を満たすレコードをフィルターします。
要約すると、時間クエリはデータ分析と処理の効率を向上させることができる非常に実用的な機能です。 ThinkPHP フレームワークでは、タイムスタンプ、日付、期間、および時間間隔に基づいて時間クエリを実行するのが非常に便利です。上記の内容が皆様のお役に立てれば幸いです。
以上がThinkPHP フレームワークで時間クエリを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。