php检查是否开始或者过期日期是否为null或更大/小于今天的日期

时间:2015-02-13 23:47:54

标签: php date date-comparison

我有一个foreach循环,我需要为可选的开始和到期日期添加日期条件。

我正在使用它,因为我需要设置一些时间安排,但我无法让它运行。

$thedate = date("Y-m-d H:i:s");
foreach ( $getframe as $frame ){
    if(isset($frame['dateexpire']) && $frame['dateexpire'] <= $thedate || $frame['dateexpire'] == NULL
    || isset($frame['datestart']) && $frame['datestart'] >= $thedate || $frame['datestart'] == NULL ) {
        // get the frames
    }
}

$frames['datestart']$frames['dateexpire']为NULL或在我的表中设置为时间戳。

因此,如果开始日期是NULL或GREATER而不是当前日期,或者到期日期是NULL或LESS而不是当前日期,那么框架应该出现。

我想我完全错误地解决了这个问题,任何人都可以对正确的做法有所了解

1 个答案:

答案 0 :(得分:1)

您的错误是您将时间戳($frames['datestart']$frames['dateexpire'])与字符串($thedate = date("Y-m-d H:i:s");)进行比较。

这是一个固定版本,带有一些额外的改进。

$today = time();
foreach ( $getframe as $frame ){
    if (is_null($frame['datestart']) || is_null($frame['dateexpire']) || $frame['datestart'] > $today || $frame['dateexpire'] < $today) 
       // get the frames
    }
}
  • 我将今天的变量命名为$today,这是最有意义的。
  • 我使用is_null()检查空值