on peut lui indiquer une date STR ou un timstamp:
désolé pour le si peu de commentaire
<?php
function temps_ecoule($date,$type) {
if($type == "timestamp") {
$date2 = $date; // depuis cette date
} elseif($type == "date") {
$date2 = strtotime($date); // depuis cette date
} else {
return "Non reconnu";
}
$Ecart = time()-$date2;
$Annees = date('Y',$Ecart)-1970;
$Mois = date('m',$Ecart)-1;
$Jours = date('d',$Ecart)-1;
$Heures = date('H',$Ecart)-1;
$Minutes = date('i',$Ecart);
$Secondes = date('s',$Ecart);
$echo_annee = "";
$echo_mois = "";
$echo_jour = "";
$echo_heure = "";
$echo_minute = "";
$return = "";
// ######## ANNEE ########
if($Annees > 0) {
$echo_annee = $Annees." Ans";
}
// ######## MOIS ########
if($Mois > 0) {
$return = ($echo_annee != "" ? $echo_annee." et ".($Mois)." Mois " : $Mois." Mois ");
}
// ######## JOUR ########
if($Jours > 0) {
$echo_jour = $Jours." Jour".($Jours > 1 ? "s" : "");
if(!empty($echo_annee) OR !empty($echo_mois)) {
$return = $return.$echo_mois." et ".$echo_jour;
} else {
$return = $return.$echo_mois.$echo_jour;
}
}
// ######## HEURE ########
if($Heures > 0) {
$echo_heure = $Heures." Heure".($Heures > 1 ? "s" : "");
if(!empty($echo_annee) OR !empty($echo_mois) OR !empty($echo_jour)) {
$return = $echo_annee.$echo_mois.$echo_jour." et ".$echo_heure;
} else {
$return = $echo_annee.$echo_mois.$echo_jour.$echo_heure;
}
}
// ######## MINUTE ET SECONDE ########
$virgule_annee = "";
$virgule_mois = "";
$virgule_jour = "";
if($Minutes > 0) { // si le nombre de minutes est plus grand que 0, on les affiche, sinon on affiche les secondes
$echo_minute = " et ".round($Minutes)." Minute".($Minutes > 1 ? "s" : "");
} else {
$echo_minute = ($Secondes > 0 ? " et ".round($Secondes)." Seconde".($Secondes > 1 ? "s" : "") : "");
}
if(!empty($echo_annee) OR !empty($echo_mois) OR !empty($echo_jour) OR !empty($echo_heure)) {
if(!empty($echo_annee)) {
if(!empty($echo_mois) OR !empty($echo_jour) OR !empty($echo_heure)) {
$virgule_annee = ", ";
}
}
if(!empty($echo_mois)) {
if(!empty($echo_jour) OR !empty($echo_heure)) {
$virgule_mois = ", ";
}
}
if(!empty($echo_jour)) {
if(!empty($echo_heure)) {
$virgule_jour = ", ";
}
}
}
$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour.$virgule_jour.$echo_heure.$echo_minute;
return "Il y a ".$return;
}