Devant ce titre un peu difficile à cerner, se trouve une fonction php très simple qui permet de transformer une durée de X secondes, en un retour textuel.
3622 secondes équivaut à 1 heure 0 minute 22 secondes.
L'affichage s'avère ainsi plus clair. Cette fonction peut être utilisée dans de nombreux domaines, sur un "forum" par exemple ( Tartanpion a posté il ya 3 jours ce message.. ).
[code=php]<?php
function duree($time) {
$tabTemps = array("jours" => 86400,
"heures" => 3600,
"minutes" => 60,
"secondes" => 1);
$result = "";
foreach($tabTemps as $uniteTemps => $nombreSecondesDansUnite) {
$$uniteTemps = floor($time/$nombreSecondesDansUnite);
$time = $time%$nombreSecondesDansUnite;
if($$uniteTemps > 0 || !empty($result))
$result .= $$uniteTemps." $uniteTemps ";
}
return $result;
}
?>[/code]
L'utilisation de ce code :
[code=php]<?php echo duree(95651) ; ?>[/code]
Ceci affichera :
Nous pouvons aller plus loin.
Pour comparer deux dates et afficher leur durée, il suffit d'utiliser la fonction php strtotime.
[quote]strtotime() essaye de lire une date au format anglais US dans la chaîne time , et de la transformer en timestamp Unix (le nombre de secondes depuis le 1er Janvier 1970 à 00:00:00 GMT), relativement au timestamp now , ou à la date courante si ce dernier est omis. [/quote]
En exemple :
[code=php]<?php echo 'Il s'est écoulé ' . duree( strtotime(2008-09-01 03:12:02) - strtotime('2008-08-26 23:28:12') ) . ?>
Les lecteurs ont donné une note moyenne de :
Note: 1 sur 10
Donnez votre note à ce tuto sur 10 :