ホームページ > バックエンド開発 > PHPチュートリアル > 私の PHP コードが今日の日付が日付範囲内にあるかどうかを正確にチェックしないのはなぜですか?

私の PHP コードが今日の日付が日付範囲内にあるかどうかを正確にチェックしないのはなぜですか?

DDD
リリース: 2024-11-26 03:42:07
オリジナル
588 人が閲覧しました

Why is my PHP code not accurately checking if today's date falls within a date range?

PHP での日付範囲の確認

PHP では、特定の日付が範囲内にあるかどうかを判断する必要がある状況に遭遇することがあります。日付。これは、有効性チェックやスケジュール設定のためのアプリケーションでよく使用されます。

質問:

次のコード:

$paymentDate = date('d/m/Y');
$contractDateBegin = date('d/m/Y', '01/01/2001');
$contractDateEnd = date('d/m/Y', '01/01/2015');

if ($paymentDate > $contractDateBegin && $paymentDate < $contractDateEnd) {
  echo "is between";
} else {
  echo "NO GO!";
}
ログイン後にコピー

ただし、このコードは期待どおりに機能しないため、何をすればよいかわかりません。

答え:

提供されたコードの重大なエラーの 1 つは、$paymentDate に使用されている日付形式が間違っていることです。日付を効果的に比較するには、日付を一貫した形式 (通常は「YYYY-MM-DD」形式) に変換することが重要です。これを実現するには、strtotime() 関数を利用できます。

$paymentDate = date('Y-m-d');
$paymentDate = date('Y-m-d', strtotime($paymentDate));
ログイン後にコピー

さらに、今日の日付が範囲内にあることを確認するには、>=<🎜 を使用します。 > と > の代わりに 。これは、現在コードが範囲の最終日を除外しているためです。以下の修正されたコードは、今日の日付が契約日の間にあるかどうかを確認するために適切に機能するはずです。

$paymentDate = date('Y-m-d');
$paymentDate = date('Y-m-d', strtotime($paymentDate));
//echo $paymentDate; // echos today!
$contractDateBegin = date('Y-m-d', strtotime("01/01/2001"));
$contractDateEnd = date('Y-m-d', strtotime("01/01/2012"));

if (($paymentDate >= $contractDateBegin) && ($paymentDate <= $contractDateEnd)) {
    echo "is between";
} else {
    echo "NO GO!";
}
ログイン後にコピー
注:元のコードでは別の日付形式 (例: 「dd/mm/YYYY」) が使用されているため、必ず「YYYY-MM-DD」に変換してください。

strtotime() 関数は、正確な比較を保証します。

以上が私の PHP コードが今日の日付が日付範囲内にあるかどうかを正確にチェックしないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート