Une fonction PHP permettant d’afficher « il y a moins d’une minute », « il y a X minutes », « il y a X heures », « Hier à « , sinon la fonction retourne la date en Français. La date attendue en paramètres est au format « Y-m-d h:i:s »
function dateFrToday($date) {
$year = $date[0] . $date[1] . $date[2] . $date[3];
$month = $date[5] . $date[6];
$day = $date[8] . $date[9];
$heure = $date[11] . $date[12];
$minutes = $date[14] . $date[15];
$dateVariable = $year . '-' . $month . '-' . $day;
if ($dateVariable == date(‘Y-m-d’)) { //Si c’est aujourd’hui
$iTimeDifference = time() – strtotime($date);
if ($iTimeDifference < 0) {
return;
}
$iSeconds = $iTimeDifference;
$iMinutes = round($iTimeDifference / 60);
$iHours = round($iTimeDifference / 3600);
if ($iSeconds < 60)
return « Il y a moins d’une minute »;
elseif ($iMinutes < 60)
return ‘Il y a ‘ . $iMinutes . ‘ minute’ . ( $iMinutes > 1 ? ‘s’ : » );
elseif ($iHours < 24)
return ‘Il y a ‘ . $iHours . ‘ heure’ . ($iHours > 1 ? ‘s’ : » );
} else if (strtotime($dateVariable) == strtotime(date(‘Y-m-d’) . ‘ – 1 DAY’)) { // Si la date correspond à hier
// si égale a J-1 on affiche « Hier »
return ‘Hier à ‘ . $heure . ‘h’ . $minutes;
} else {
//sinon, la date en Français
return $day . ‘/’ . $month . ‘/’ . $year . ‘ à ‘ . $heure . ‘h’ . $minutes;
}
}