Par exemple : On a une variable qui définit une durée de 38600 secondes, mais comme vous remarquez, cette durée aurait été plus claire et plus facile à retenir si elle était présentée en valeurs jours, heures, minutes et secondes , c'est à dire sous forme d'une date.
L'idée de ce tuto est d'apprendre à créer une fonction qui permettra de convertir le nombre de secondes en forme d'une date.
Alors au travail! :)
function transforme($time)
{
if ($time>=86400)
/* 86400 = 3600*24 c'est à dire le nombre de secondes dans un seul jour ! donc là on vérifie si le nombre de secondes donné contient des jours ou pas */
{
// Si c'est le cas on commence nos calculs en incluant les jours
// on divise le nombre de seconde par 86400 (=3600*24)
// puis on utilise la fonction floor() pour arrondir au plus petit
$jour = floor($time/86400);
// On extrait le nombre de jours
$reste = $time%86400;
$heure = floor($reste/3600);
// puis le nombre d'heures
$reste = $reste%3600;
$minute = floor($reste/60);
// puis les minutes
$seconde = $reste%60;
// et le reste en secondes
// on rassemble les résultats en forme de date
$result = $jour.'j '.$heure.'h '.$minute.'min '.$seconde.'s';
}
elseif ($time < 86400 AND $time>=3600)
// si le nombre de secondes ne contient pas de jours mais contient des heures
{
// on refait la même opération sans calculer les jours
$heure = floor($time/3600);
$reste = $time%3600;
$minute = floor($reste/60);
$seconde = $reste%60;
$result = $heure.'h '.$minute.'min '.$seconde.' s';
}
elseif ($time<3600 AND $time>=60)
{
// si le nombre de secondes ne contient pas d'heures mais contient des minutes
$minute = floor($time/60);
$seconde = $time%60;
$result = $minute.'min '.$seconde.'s';
}
elseif ($time < 60)
// si le nombre de secondes ne contient aucune minutes
{
$result = $time.'s';
}
return $result;
}
wala c tout :)
@+
PHPaul