php проверяет, если начало или даты истечения срока являются либо нулевыми, либо больше / меньше, чем сегодняшняя дата

У меня есть цикл 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 или БОЛЬШЕ, чем текущая дата, либо дата истечения имеет значение NULL или LESS, чем текущая дата, должен появиться фрейм.

Я думаю, что я поступаю об этом совершенно неправильно, может кто-нибудь пролить свет на правильный подход

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() проверить на нулевые значения
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]