比较数据库中的日期

时间:2019-01-02 13:33:44

标签: php

我正在尝试比较php中的日期,以决定应运行的功能。 第一个日期是我从数据库中获取的当前日期,第二个日期是yyyy-mm-dd格式。

$now = new DateTime();
$date = new DateTime($hugRec['toDate']);
if($date < $now){echo 'inside if'}

$ date的值是2019-01-02 15:22:35.000000(当我使用print_r时)

日期类型强制转换为字符串,我不确定如何比较它们。我尝试了strtotime,但也没有成功。

很乐意寻求帮助。

编辑: 尝试了所有答案,但如果说到话,刺激就无法进入我的视野:

$hug = $mysqli->query($queryHug);
$hugRec = mysqli_fetch_array($hug);
$now = new DateTime();
$date = new DateTime($hugRec['DBDate']); //obviously I changed key's name
echo '<br><br><br>DBDATE"<br>'; //obviously I changed key's name
print_r($hugRec['DBDate']); //obviously I changed key's name
echo '<br><br><br>DATE"<br>';
print_r($date);
echo '<br><br><br>NOW"<br>';
print_r($now);

 if($date < $now){
    echo '<script>alert("here")</script>';
}

DBDATE” 2019-01-08

DATE” DateTime对象([date] => 2019-01-08 00:00:00.000000 [timezone_type] => 3 [timezone] =>亚洲/耶路撒冷)

现在” DateTime对象([date] => 2019-01-03 13:05:58.000000 [timezone_type] => 3 [timezone] =>亚洲/耶路撒冷)

我了解这似乎与其他帖子重复,但是显然我缺少了一些东西...

1 个答案:

答案 0 :(得分:1)

DateTime::createFromFormat对于从日期字符串创建日期时间对象将很好地工作。然后,您可以在它们上使用< > ===运算符进行比较。

https://3v4l.org/frgJr

<?php

$now = new DateTime();
$date = '1996-12-08';
$date = DateTime::createFromFormat('Y-m-d', $date);

if($date < $now) {
    echo 'HIT';
}

$date->modify("+30 year");

if($date < $now) {
    echo 'HIT';
}

输出

HIT