[php] [solution] écrire en français le temps écoulé entre deux dates

WRInaute occasionnel
La fonction est à appeler comme ceci :
Code:
<? echo rel_time("10/20/1988"); ?>

Et voici la fonction :
Code:
<?
function rel_time($from, $to = null)
{
$to = (($to === null) ? (time()) : ($to));
$to = ((is_int($to)) ? ($to) : (strtotime($to)));
$from = ((is_int($from)) ? ($from) : (strtotime($from)));
$units = array
(
"année" => 31556926,
"mois" => 2629744,
"semaine" => 604800,
"jour" => 86400,
"heure" => 3600,
"minute" => 60,
"seconde" => 1,
);
$diff = abs($from - $to);
setlocale(LC_TIME, "fr_FR");
$variz=strftime("%A %d %B %Y",$from);
$suffix = (($from > $to) ? ("from now") : ("se sont écoulées depuis le ".$variz));
foreach($units as $unit => $mult)
if($diff >= $mult)
{
$and = (($mult != 1) ? ("") : ("et "));
$output .= ", ".$and.intval($diff / $mult)." ".$unit.((intval($diff / $mult) == 1) ? ("") : ("s"));
$diff -= intval($diff / $mult) * $mult;
}
$output .= " ".$suffix;
$output = substr($output, strlen(", "));
return str_replace('moiss','mois',$output);
}
?>

Résultat : "21 années, 11 mois, 2 jours, 2 heures, 31 minutes, et 13 secondes se sont écoulées depuis le jeudi 20 octobre 1988";

En espérant vous apporter quelque chose d'utile, Peace.
 
WRInaute accro
(C'était pour être sûr qu'il ait bien compris. :mrgreen: )

Mais quel boulet. J'accumule sur ce topic :lol:
C'est dans ce genre de situation ou l'air de rien, on se retire en baissant la tête, non ?
 
Discussions similaires
Haut