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
}

有关详细信息,请参阅datetime 构造函数

(我个人喜欢面向对象的方法,但 Hast 的答案在技术上更快,内存占用更少,并且是 PHP 代码的完全旧部分。但如果您需要对日期做进一步的处理,例如计算星期几或添加时间间隔和重新显示,你会很高兴有这些物体。)

于 2012-12-12T19:07:34.897 回答