我需要在即将到来的这些日子之间在我的网站上显示一些信息:
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
}
什么是更干净的方式?
答案 0 :(得分: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
}
答案 1 :(得分:1)
我很确定你可以创建日期对象并只是比较它们。
这样的事情:
$today = new DateTime();
$start = new DateTime("2012-12-28");
$end = new DateTime("2012-01-01");
if($start <= $today && $today <= $end) {
// show stuff
}
有关详细信息,请参阅datetime constructor。
(我个人喜欢面向对象的方法,但是Hast的答案在技术上更快,内存密集程度更低,而且是PHP代码的一部分。但是如果你需要对日期做更多的事情,比如找出日期的话。一周或添加时间间隔和重新显示,你会很高兴有周围的对象。)