0/5 (8 avis)
Snippet vu 16 005 fois - Téléchargée 30 fois
function date_elapsednaturaltime($timestamp1,$timestamp2=0) { if ($timestamp2 == 0) { $timestamp2 = date('U'); } $a = date("Y",$timestamp1); $m = date("n",$timestamp1); $j = date("j",$timestamp1); $an = date("Y",$timestamp2) - $a; $mois = date("n",$timestamp2) - $m; $jour = date("j",$timestamp2) - $j; // Durée en année, mois, jours. if ($jour<0) { $d2=mktime(0,0,0,date("n")-1,date("j"),date("Y")); $diff=date_nbdays4month(date("n",$d2),date("Y",$d2)); $jour+=$diff; $mois--; } if ($mois<0) { $mois+=12; $an--; } $txt = ''; if ($an == 1) { // Depuis 1 an if (($mois >= 6) AND ($mois <= 7)) { $txt.= '1 an et demi'; } else if ($mois >= 11) { $txt.= '2 ans'; } else if ($mois >= 2) { $txt.= '1 an, et '.$mois.' mois'; } else { $txt.= '1 an'; } } else if ($an > 1) { // Depuis plusieurs années if ($mois < 5) { $txt.= $an.' ans'; } else if ($mois <= 8) { $txt.= $an.' ans et demi'; } else { $txt.= ($an+1).' ans'; } } else if ($mois >= 1) { // Depuis plusieurs mois if ($jour < 16) { $txt.= $mois.' mois'; } else if (($jour >= 14) AND ($jour <= 16)) { $txt.= $mois.' mois et demi'; } else { $txt.= ($mois+1).' mois'; } } else if ($jour >= 1) { if ($jour == 1) { $txt.= '24 heures'; } else if ($jour >=29) { $txt.= '1 mois'; } else if (($jour >=6) AND ($jour <= 8)) { $txt.= '1 semaine'; } else if ($jour >= 16) { $txt.= ceil($jour/7).' semaines'; } else { $txt.= $jour.' jours'; } } else { $ecart = ceil(date('U',$timestamp2)-date('U',$timestamp1)); if (($ecart <= 65) AND ($ecart >= 58)) { $txt ='1 minute'; } else if ($ecart <= 60) { $txt = $ecart.' secondes'; } else if (($ecart >= (58 * 60)) AND ($ecart <= (62 * 60))) { $txt = '1 heure'; } else if ($ecart <= (60 * 60)) { $txt = ceil($ecart/60).' minutes'; } else if (($ecart >= (73 * 60)) AND ($ecart <= (77 * 60))) { $txt = '1 heure et quart'; } else if (($ecart >= (88 * 60)) AND ($ecart <= (92 * 60))) { $txt = '1 heure et demi'; } else if ($ecart < (120 * 60)) { $txt = '1 heure, et '.ceil(($ecart-(60*60))/60).' minutes'; } else { $txt = ceil($ecart/(60*60)).' heures'; } } return $txt; } function date_nbdays4month($month,$year) { if ($month==2) { if($year%4) return 28; elseif($year%100) return 29; elseif($year%1000) return 28; else return 29; } else if (($month==4)||($month==6)||($month==9)||($month==11)) { return 30; } return 31; }
22 oct. 2009 à 12:40
21 oct. 2009 à 10:36
21 oct. 2009 à 00:40
j'ai essayé le script en prenant un timestamp à 23H59
lors du passage à 0H00 le script marque 24 heures
or il n'y a que trois minutes d'écart
2 avril 2009 à 22:45
24 mars 2008 à 08:01
Je viens de l'installer sur mon site pour les dernières connexions des membres et les MP et pour l'instant je n'ai pas à m'en plaindre !
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.