我有一个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而不是当前日期,那么框架应该出现。
我想我完全错误地解决了这个问题,任何人都可以对正确的做法有所了解
答案 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()
检查空值