重複の可能性:
日付が特定の範囲内にあるかどうかを確認する方法は?
次の数日の間にサイトに情報を表示する必要があります。
12/28~1/1
これが私の現在のやり方ですが、かなり醜く見えます:
$today = date('m/d');
$days = array('12/28', '12/29', '12/30', '12/31', '1/1');
if(in_array($today, $days)) {
// show stuff
}
よりクリーンな方法は何ですか?
重複の可能性:
日付が特定の範囲内にあるかどうかを確認する方法は?
次の数日の間にサイトに情報を表示する必要があります。
12/28~1/1
これが私の現在のやり方ですが、かなり醜く見えます:
$today = date('m/d');
$days = array('12/28', '12/29', '12/30', '12/31', '1/1');
if(in_array($today, $days)) {
// show stuff
}
よりクリーンな方法は何ですか?
mktime()関数を見てください
$dateStart = mktime(0, 0, 0, 12, 28, 2012);
$dateEnd = mktime(0, 0, 0, 1, 1, 2013);
if (time() < $dateEnd && time() > $dateStart)
// show stuff
}
日付オブジェクトを作成して比較できると確信しています。
このようなもの:
$today = new DateTime();
$start = new DateTime("2012-12-28");
$end = new DateTime("2012-01-01");
if($start <= $today && $today <= $end) {
// show stuff
}
詳細については、日時コンストラクターを参照してください。
(私は個人的にオブジェクト指向のアプローチが好きですが、Hastの答えは技術的に速く、メモリをあまり消費せず、PHPコードの完全に古い部分です。しかし、曜日を把握したり追加したりするなど、日付をさらに処理する必要がある場合時間間隔と再表示により、オブジェクトが周りにあることをうれしく思います。)