检查数据库中的日期是否大于当前时间

时间:2016-05-07 20:13:20

标签: php pdo

我有一个PHP脚本来检查存储在数据库中的日期是否大于,等于或小于当前时间。

  • 如果它大于或等于,则回声“更大”。
  • 如果不是更大,它会回应“不是”

我的问题是,即使数据库中的时间不是大于或等于当前时间,它也会回响“更大”(当它应该回显“不是”时)。

存储在数据库中的日期:

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 个答案:

答案 0 :(得分: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
}