我正在尝试比较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] =>亚洲/耶路撒冷)
我了解这似乎与其他帖子重复,但是显然我缺少了一些东西...
答案 0 :(得分:1)
DateTime::createFromFormat对于从日期字符串创建日期时间对象将很好地工作。然后,您可以在它们上使用<
>
===
运算符进行比较。
<?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