更改日期范围内的事件

时间:2013-10-09 16:47:16

标签: php date

我正在尝试编写PHP代码来检查日期/时间是否在某个范围内以呈现某些HTML,如果没有,则呈现一些其他HTML。以下是我的代码。如果我将比较设置为未来的日期,它似乎工作正常,&旗帜状态为半职员和然后根据参数回到全员。但是第二天,在状态恢复到全职员工后大约2-3个小时,它会自动恢复到一半的员工状态。

if(date('Y-n-j-G-i') >= '2013-10-9-12-00' && date('Y-n-j-G-i') <= '2013-10-10-5-00' ) {

    echo "<span style='font-size:1.1em'>Governor's Flag Status:</br> <span style='color:#f00'>Half Staff</span></span>";
}
else {
    echo "<span style='font-size:1.1em'>Governor's Flag Status:</br> <span style='color:#333'>Full Staff</span></span>";
}

我试图通过逻辑“思考”,但似乎我错过了一些东西。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

不要比较字符串(就像你实际做的那样,因为date()函数返回格式化字符串),而是比较UNIX时间戳。

使用有效时间格式的timestrtotime

$currentTime = time();
if($currentTime >= strtotime('2013-10-9 12:00') && 
   $currentTime <= strtotime('2013-10-10 5:00')) {