ホームページ  >  記事  >  バックエンド開発  >  PHPで時刻かどうかを判断する方法(2つの方法)

PHPで時刻かどうかを判断する方法(2つの方法)

PHPz
PHPzオリジナル
2023-04-12 09:21:342142ブラウズ

PHP 言語では、多くのアプリケーションが現在時刻に基づいて異なる情報を表示する必要があるため、時刻がその日の時刻であるかどうかを判断するのは非常に一般的な操作です。この機能を実現するにはいくつかの方法があります。

方法 1: date 関数を使用して現在の日付と判定対象の日付を取得する

PHP の date 関数を使用すると、現在の日付と時刻を取得し、指定した形式で出力できます。

たとえば、次のコードは現在の日付と時刻を出力します:

echo date('Y-m-d H:i:s');

ここでの「Y-m-d H:i:s」は、出力の日付形式が「年-月-日」であることを意味します。時:分:秒」。

日付が今日の日付であるかどうかを判断するには、現在の日付を同じ形式で保存し、2 つの日付が同じかどうかを比較します。具体的な実装コードは以下のとおりです。

$today = date('Y-m-d');
$target_date = '2021-04-23';

if ($today == $target_date) {
   echo '是当天日期';
} else {
   echo '不是当天日期';
}

ここでは、まずdate関数を使用して現在の日付を取得し、$today変数に格納し、次に判定が必要な日付を$target_dateに格納します。変数。次に、if ステートメントを使用して 2 つの日付を比較し、同じであれば「今日の日付である」と出力し、そうでない場合は「今日の日付ではない」と出力します。

方法 2: strtotime 関数を使用して日付をタイムスタンプに変換して比較する

PHP の strtotime 関数は日付をタイムスタンプに変換できます。タイムスタンプは 1970 年以降を表す整数です。年の 1 月 1 日からの経過秒数。

具体的な実装コードは以下のとおりです。

$target_date = '2021-04-23';
$target_timestamp = strtotime($target_date);
$current_timestamp = time();

if ($target_timestamp >= strtotime('today') && $target_timestamp < strtotime('tomorrow')) {
   echo '是当天日期';
} else {
   echo '不是当天日期';
}

ここでは、まず判定したい日付を$target_date変数に格納し、strtotime関数を使ってタイムスタンプに変換します。そしてそれを $target_timestamp 変数に保存します。次に、time 関数を使用して現在のタイムスタンプを取得し、それを $current_timestamp 変数に保存します。

次に、if ステートメントを使用して、$target_timestamp がその日の開始タイムスタンプ (つまり、今日の 0 時のタイムスタンプ) 以上で、明日の開始タイムスタンプより小さいかどうかを判断します。そうであれば、$target_date が今日の日付であり、「今日の日付である」と出力され、それ以外の場合は「今日の日付ではない」と出力されることを意味します。

注: ここでの「今日の 0 時」のタイムスタンプは strtotime('today') を使用して取得でき、「明日の開始タイムスタンプ」は strtotime('tomorrow') を使用して取得できます。

まとめ

今日の日付かどうかを判定する方法は上記 2 つあり、1 つ目の方法は考え方がシンプルですが、比較したい期間が一定の期間である場合に適用されます。 , 現在の日だけでなく、タイムスタンプと組み合わせてより複雑な計算を実行する必要があります。 2 番目の方法では、PHP 独自の strtotime 関数を使用してタイムスタンプを変換および比較します。これは、より便利で高速です。誰もが実際のニーズに応じて柔軟に選択できます。

以上がPHPで時刻かどうかを判断する方法(2つの方法)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。