vendredi 12 janvier 2018

How can be shorted and optimized my function?

I just now wrote function for check two date difference and display in needed format. I user many if-else operations. Can be shorted my code? Can be used here ternary operations instead of if-else?

$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!";

}

Aucun commentaire:

Enregistrer un commentaire