1

我正在尝试编写 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>";
}

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

4

1 回答 1

1

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

使用具有有效时间格式的timestrtotime :

$currentTime = time();
if($currentTime >= strtotime('2013-10-9 12:00') && 
   $currentTime <= strtotime('2013-10-10 5:00')) {
于 2013-10-09T16:54:45.740 回答