I've written a function to take the difference between two dates and display it in a particular format. I've used a lot of if-else statements, which seems a little messy. Is there a way to shorten this up? Would using the ternary operator make sense?
$date1 = '2018-04-30 10:36:29';
$date2 = '2018-04-30 10:35:29';
echo dateDiff($date1, $date2);
function dateDiff($date1, $date2)
{
$date_1 = new DateTime($date1);
$date_2 = new DateTime($date2);
$diff = $date_1->diff($date_2);
if($diff->days > 365){
return $date_1->format('Y-m-d');
}
elseif($diff->days < 366 AND $diff->days > 7){
return $date_1->format('M d');
}
elseif($diff->days > 2 AND $diff->days < 8){
return $date_1->format('L - H:i');
}
elseif($diff->days == 2) return "Yesterday ".$date_1->format('H:i');
elseif($diff->days < 2 AND $diff->days > 0 OR $diff->days == 0 AND $diff->h > 1) return $date_1->format('H:i');
elseif($diff->days == 0 AND $diff->h < 1 AND $diff->i >= 1) return $diff->i." min ago";
elseif($diff->days == 0 AND $diff->h < 1 AND $diff->i < 1) return "just now";
else return $error = "Error!";
}
return $error = "Error!";why? \$\endgroup\$