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" />'; } 

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

Должно быть, я делаю что-то глупое, но что это, это сводит меня с ума!

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

 $opening_date = new DateTime($current_store['openingdate']); $current_date = new DateTime(); if ($opening_date > $current_date) { // not open yet! } 

Для этого вам не нужен объект DateTime . Попробуй это:

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

Вы можете сравнивать объекты 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" />'; }