2016-05-07 8 views
0

У меня есть PHP-скрипт для проверки того, больше ли дата, хранящаяся в базе данных, меньше или меньше текущего времени.Проверка наличия даты в базе данных больше, чем текущее время

  • Если это больше или равно, то это echos 'greater'.
  • Если это не больше, это эхо «не»

Моя проблема заключается в том, что даже если время в базе данных не больше или равно текущему времени, это отголоски «больше» (когда он должен отозваться «нет»).

Дата хранится в базе данных:

enter image description here

date_default_timezone_set('Europe/London'); 
$time_stamp = date('Y-m-d H:i:s'); 

$stmt = $con->prepare("SELECT * FROM table"); 
$stmt->execute(); 

$row = $stmt->fetch(); 
if($row['BannedUntil'] <= $time_stamp) { 
echo 'Greater'; 
}else{ 
echo 'not'; 
} 
+1

не сравнить строки: 'если (StrToTime ($ строка ['BannedUntil']) <= time()) {' – splash58

+0

@ splash58 Спасибо. Используя это, я смог решить проблему. :) –

ответ

0

Использование MySQL Функции даты и времени DATEDIFF

date_default_timezone_set('Europe/London'); 
$time_stamp = date('Y-m-d H:i:s'); 

$stmt = $con->prepare("SELECT DATEDIFF(`BannedUntil`,NOW()) AS `daysUntil` FROM table"); 
$stmt->execute(); 

$row = $stmt->fetch(); 
if($row['daysUntil'] >= 0) { 
echo 'Greater'; // banned 
}else{ 
echo 'not'; // not banned 
} 
+0

Будет ли это необходимо, поскольку 'if (strtotime ($ row ['BannedUntil']) <= time()) {' похоже, работает нормально? –

+0

Проверьте эту скрипку http://sqlfiddle.com/#!9/9eecb7d/58348. Результат - целое число, представляющее количество дней. Он может быть положительным, отрицательным или равным нулю. Это более точный подход к моему мнению. Вы протестировали его, чтобы узнать, отвечает ли он на ваш вопрос? –

Смежные вопросы