Подтвердить что ты не робот

PHP. Определите, будет ли дата в будущем использовать объект DateTime.

Я пытаюсь определить, будет ли дата в будущем или нет, используя объекты 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" />';
}

Проблема заключается в том, что она всегда положительна, поэтому изображение показывает, когда это не должно быть.

Я должен делать что-то глупое, но что это такое, это сводит меня с ума!

4b9b3361

Ответ 1

Это проще, чем вы думаете. Вы можете сравнивать с DateTime objects:

$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
}

Ответ 3

Вы можете сравнивать объекты DateTime с обычными операторами сравнения:

  $date1 = new DateTime("");                                                   
  $date2 = new DateTime("tomorrow");

  if ($date2 > $date1) {
      echo '$date2 is in the future!';
  }

Для вашего текущего кода попробуйте следующее:

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

if ($opening_date > $current_date) {
    echo '<img id="openingsoon" src="/img/misc/openingsoon.jpg" alt="OPENING SOON" />';
}