PHP - 使用 DateTime 对象确定日期是否在未来

2022-08-30 14:23:21

我试图使用对象来确定日期是否在未来,但它总是返回正数:DateTime

$opening_date = new DateTime($current_store['openingdate']);
$current_date = new DateTime();
$diff = $opening_date->diff($current_date);
echo $diff->format('%R'); // +

if($diff->format('%R') == '+' && $current_store['openingdate'] != '0000-00-00' && $current_store['openingdate'] !== NULL) {
    echo '<img id="openingsoon" src="/img/misc/openingsoon.jpg" alt="OPENING SOON" />';
}

问题是它总是积极的,所以图像在不应该的时候显示出来。

我一定是在做一些愚蠢的事情,但它是什么,它让我发疯了!


答案 1

这比您想象的要容易。您可以对 DateTime 对象进行比较:

$opening_date = new DateTime($current_store['openingdate']);
$current_date = new DateTime();

if ($opening_date > $current_date)
{
  // not open yet!
}

答案 2

您不需要为此使用对象。试试这个:DateTime

$now = time();
if(strtotime($current_store['openingdate']) > $now) {
     // then it is in the future
}

推荐