У меня есть две даты, подобные этой
$date1 = "2018-11-07";
$date2 = "2018-11-12";
Я хочу сравнить эти две даты, чтобы я мог получить диапазон дней между этими датами. Я использовал DiffDate
функцию. Это похоже на синтаксис ниже.
$datediff1 = new DateTime($date1);
$datediff2 = new DateTime($date2);
$interval = $datediff2->diff($datediff1);
echo $interval->d; // will return 5
Я получил функцию, но у меня проблема, когда у одной из этих двух дат было значение типа «0000-00-00». Они начали выглядеть так.
$date1 = "2018-11-07";
$date2 = "0000-00-00";
$datedif1 = new DateTime($date1);
$datediff2 = new DateTime($date2);
$interval = $datediff2->diff($datediff1);
echo $interval->d; // will return 8
//// If i reverse the date like $datediff1->diff($datediff2);
//// it will return 7 instead
Мой вопрос: как я могу предотвратить возвращение этих двух дат 0
, если одна или все даты имеют значение "0000-00-00"? Я пытался использовать if...else....
if($date1 == "0000-00-00" || $date2 == "0000-00-00"){
$interval = "0";
echo $interval;
}else {
$interval = $date2->diff($date1);
$i = $interval->d;
}
Есть ли лучший способ сделать это, чем использовать оператор if else
?
СМОТРИТЕ ОНЛАЙН ЗДЕСЬ
PS: я использую PHP 5.6