voici une fonction réaliser par moi même qui affiche le temps écouler en année, mois, jours, heure, minutes et secondes
Bien évidement, le mois se met dès que le nbr de jour dépasse 30 ou 31, idem pour le mois, si ça dépasse 12 mois, l'année se met
voici la fonction:
<?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";
exit();
}
$date1 = date("U"); // à la date actuelle
$return = "";
// ######## ANNEE ########
if((date('Y',$date1 - $date2)-1970) > 0) {
if((date('Y',$date1 - $date2)-1970) > 1) {
$echo_annee = (date('Y',$date1 - $date2)-1970)." Anneés";
$return = $echo_annee.", ";
} else {
$echo_annee = (date('Y',$date1 - $date2)-1970)." Année";
$return = $echo_annee.", ";
}
} else {
$echo_annee = "";
$return = $return;
}
// ######## MOIS ########
if((date('m',$date1 - $date2)-1) > 0) {
$echo_mois = (date('m',$date1 - $date2)-1)." Mois ";
if(!empty($echo_annee)) {
$return = $echo_annee." et ".$echo_mois;
} else {
$return = $echo_mois;
}
} else {
$echo_mois = "";
$return = $return;
}
// ######## JOUR ########
if((date('d',$date1 - $date2)-1) > 0) {
if((date('d',$date1 - $date2)-1) > 1) {
$echo_jour = (date('d',$date1 - $date2)-1)." Jours";
if(!empty($echo_annee) OR !empty($echo_mois)) {
$return = $return.$echo_mois." et ".$echo_jour;
} else {
$return = $return.$echo_mois.$echo_jour;
}
} else {
$echo_jour = (date('d',$date1 - $date2)-1)." Jour";
if(!empty($echo_annee) OR !empty($echo_mois)) {
$return = $return.$echo_mois." et ".$echo_jour;
} else {
$return = $return.$echo_mois.$echo_jour;
}
}
} else {
$echo_jour = "";
$return = $return;
}
// ######## HEURE ########
if((date('H',$date1 - $date2)-1) > 0) {
if((date('H',$date1 - $date2)-1) > 1) {
$echo_heure = (date('H',$date1 - $date2)-1)." Heures";
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;
}
} else {
$echo_heure = (date('H',$date1 - $date2)-1)." Heure";
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;
}
}
} else {
$echo_heure = "";
$return = $return;
}
// ######## MINUTE ET SECONDE ########
$virgule_annee = "";
$virgule_mois = "";
$virgule_jour = "";
if(date('i',$date1 - $date2) > 0) {
if(date('i',$date1 - $date2) > 1) {
$echo_minute = round(date('i',$date1 - $date2))." Minutes";
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." et ".$echo_minute;
} else {
$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour.$virgule_jour.$echo_heure.$echo_minute;
}
} else {
$echo_minute = round(date('i',$date1 - $date2))." Minute";
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." et ".$echo_minute;
} else {
$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour.$virgule_jour.$echo_heure.$echo_minute;
}
}
} else {
if(date('s',$date1 - $date2) > 1) {
$echo_minute = round(date('s',$date1 - $date2))." Secondes";
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." et ".$echo_minute;
} else {
$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour.$virgule_jour.$echo_heure.$echo_minute;
}
} else {
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." et ".$echo_minute;
} else {
$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour.$virgule_jour.$echo_heure.$echo_minute;
}
}
}
return "Il y a ".$return;
}
echo '<pre>';
$date = "1284346290";
echo temps_ecoule($date,"timestamp")."\n"; // timestamp ou date
$date = date('U')-9; // temps actuel, moins 9 secondes
echo temps_ecoule($date,"timestamp")."\n"; // affiche: Il y a 9 Secondes
$date = "13-04-2010 4:00";
echo temps_ecoule($date,"date")."\n";
$date = "13-04-2010 4:00";
echo temps_ecoule($date,"dat")."\n"; // Affiche: Non reconnu
echo '</pre>';
?>
C'est noël avant l'heure Cadeau !