1

重複の可能性:
日付が特定の範囲内にあるかどうかを確認する方法は?

次の数日の間にサイトに情報を表示する必要があります。

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
}

よりクリーンな方法は何ですか?

4

2 に答える 2

7

mktime()関数を見てください

$dateStart = mktime(0, 0, 0, 12, 28, 2012);
$dateEnd = mktime(0, 0, 0, 1, 1, 2013);

if (time() < $dateEnd && time() > $dateStart)
    // show stuff
}
于 2012-12-12T19:03:04.717 に答える
1

日付オブジェクトを作成して比較できると確信しています。

このようなもの:

$today = new DateTime();
$start = new DateTime("2012-12-28");
$end = new DateTime("2012-01-01");

if($start <= $today && $today <= $end) {
    // show stuff
}

詳細については、日時コンストラクターを参照してください。

(私は個人的にオブジェクト指向のアプローチが好きですが、Hastの答えは技術的に速く、メモリをあまり消費せず、PHPコードの完全に古い部分です。しかし、曜日を把握したり追加したりするなど、日付をさらに処理する必要がある場合時間間隔と再表示により、オブジェクトが周りにあることをうれしく思います。)

于 2012-12-12T19:07:34.897 に答える