PHP -是过去的日期



我想比较一个日期是今天还是过去。据我所知,我应该能够执行date1 <= today,但即使日期在未来,它也显示为true

我从数据库中获取日期,并使用

添加30天
echo "End Date: " . $rowTicket['endDate'] . "<br/>";
$disableDate = ($rowTicket['endDate'] != '0000-00-00') ? date('d-m-Y', strtotime('+30 days', strtotime($rowTicket['endDate']))) : '';

然后使用

检查
echo "Is " . $disableDate . " before today's date? (" . date("d-m-Y") . ")";
if($disableDate <= date("d-m-Y")) {
//$colourTR = $red;
echo " - Yes<br/><br/>";
} else {
echo " - No<br/><br/>";
}

我从echo's得到的输出是

结束日期:2021-09-01

01-10-2021在今天之前吗?(26-10-2021) -是

结束日期:2021-10-15

14-11-2021在今天之前吗?(26-10-2021) -是

因为你比较字符串,而应该比较时间戳


echo "End Date: " . $rowTicket['endDate'] . "<br/>";
$disableDate = $rowTicket['endDate'] != '0000-00-00'
? strtotime('+30 days', strtotime($rowTicket['endDate']))
: '';
$today = strtotime('today midnight');
echo "Is {$disableDate} before today's date? (" . date("d-m-Y", $today) . ")";
if($disableDate <= $today) {
//$colourTR = $red;
echo " - Yes<br/><br/>";
} else {
echo " - No<br/><br/>";
}

您正在将日期格式化为字符串。PHP没有办法知道字符串'26-10-2021'应该小于';字符串'14-11-2021'.

如果您将它们格式化为年份优先('Y-m-d'),则可以工作,但最好比较整数时间戳(strtotime的输出)或DateTimeImmutable对象。

相关内容

  • 没有找到相关文章

最新更新