PostQopen и PostQClose являются столбцами datetime. Мне нужен оператор php if, чтобы проверить, находится ли текущее время и время между столбцами PostQopen и PostQClose.
$now = date('Ymd H:i:s'); if($rows['PostQopen'] >= '$now' && $rows['PostQClose'] < '$now' ){ echo "TRUE"; } else { echo "FALSE"; };
Используйте DateTime .
$date = new DateTime("now"); $PostQopen = new DateTime($rows['PostQopen']); $PostQClose = new DateTime($rows['PostQClose']); if($PostQopen >= $date && $PostQClose <=$now){ // do ur stuff }
Удалите одинарные кавычки из $ now и используйте strtotime()
. Все еще без strtotime()
код будет работать, так как вы можете compare time
если оно находится в datetime format
.
if(strtotime($rows['PostQopen']) >= strtotime($now) && strtotime($rows['PostQClose']) < strtotime($now) ) { echo "TRUE"; } else { echo "FALSE"; }
Функция, которую можно найти между использованием DateTime
приведена здесь:
function dateIsBetween($from, $to, $date="now") { $date = new \DateTime($date); $from= new \DateTime($from); $to = new \DateTime($to); if ($date >= $from && $date <= $to) { return true; } return false; }
Используя функцию
dateIsBetween('2016-02-24', '2016-02-26', '2016-02-25'); //would return true dateIsBetween('2016-02-24', '2016-02-26', 'now'); //would return true if the current date would be between specified to, from dateIsBetween('2016-02-24', '2016-02-26'); //would return true if the current date would be between specified to, from
$now = date('Ymd H:i:s'); if(strtotime($rows['PostQopen']) >= strtotime('$now') && strtotime($rows['PostQClose']) < strtotime('$now') ){ echo "TRUE"; } else { echo "FALSE"; };
Проверьте, работает ли это, strtotime преобразует заданное время в миллисекунду, он должен работать