DÉBUTANT : FONCTION POUR TRANSFORMER UN TEMPS EN SECONDES EN JOUR HEURE MINUTE S

Signaler
Messages postés
63
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
16 mai 2009
-
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50848-debutant-fonction-pour-transformer-un-temps-en-secondes-en-jour-heure-minute-seconde

Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
7
MonkeyIsBack -> J'aimerais tout d'abord souligner que ton benchmark est biaisé. Quand tu fais une boucle sur une même partie de code, la partie qui est en boucle est précompilé à la deuxième itération ce qui permet un temps d'exécution beaucoup plus rapide surtout si le code utilise uniquement de l'arithmétique. Dans le cas des fonctions natives, ils sont compilées généralement dans des dll. Quand tu utilises des fonctions natives en boucles, le temps d'exécution à la première itération est généralement très proche de celui de la deuxième. Ce que ton benchmark a mesuré c'est la vitesse d'exécution de ton code quand il est précompilé par PHP.

Dans le cas de fonction pour transformer du temps en lettre, l'utilisation dans un page ce limite souvent à une ou à quelques utilisations. Dans ce cas, les fonctions natives sont à privilégier puisqu'ils sont déjà précompilés dans des dll. Si tu aurais fais des benchmarks sur le temps de première itération pour les deux fonctions, la fonction date aurait été la plus rapide.

P.S.: Des benchmarks c'est souvent comme des statistiques, on peut faire dire pratiquement n'importe quoi avec.
Messages postés
6
Date d'inscription
mercredi 28 novembre 2007
Statut
Membre
Dernière intervention
20 janvier 2008

Bonjour,

Voila, j'ai téléchargé le zip du programme de transformation du temps en sevcondes, minutes et heures, mais je ne sais pas comment l'éxecuter, ( je suis vraiment trés débutant).

Salutations
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Au temps pour moi, Arto a fait une erreur dans le format de la date ^^

Mais je persiste sur mon commentaire précédent... Ton code est quand même beaucoup moins clair.
Messages postés
9
Date d'inscription
vendredi 13 novembre 2009
Statut
Membre
Dernière intervention
27 juin 2011

Voici ma source actuelle sur mon site (et qui fonctionne vu que je l'ai vérifié à l'usage ^^)

function Convert_Sec_JHms($Seconde)
{
// Transformation Secondes en Jour Heure minute seconde
$Jour = floor($Seconde / 86400);
$Seconde = $Seconde - ($Jour * 86400); // Parenthèse facultative
$Heure = floor($Seconde / 3600);
$Seconde = $Seconde - ($Heure * 3600);
$Minute = floor($Seconde / 60);
$Seconde = $Seconde - ($Minute * 60);

// Ajout des zéros au cas où l'affichage soit en dessous de 10
if ($Heure < 10)
{$Heure = '0'.$Heure;}
if ($Minute < 10 AND $Minute > 0)
{$Minute = '0'.$Minute;}
if ($Minute == 0)
{$Minute = '00';}
if ($Seconde < 10)
{$Seconde = '0'.$Seconde;}

// Retourne une variable la plus petite possible
if ($Jour > 0)
{return $Jour.'j '.$Heure.':'.$Minute.':'.$Seconde;}
elseif ($Heure > 0)
{return $Heure.':'.$Minute.':'.$Seconde;}
else
{return $Minute.':'.$Seconde;}
}

PS : ma fonction ne donne aucune erreur possible, quelque soit le nombre de secondes, tout est exact à l'unité près ;-) (j'ai vérifié toutes les valeurs genre 60 seconde => 01:00, 3600 => 01:00:00, également pour le nombre de jours etc etc
Afficher les 17 commentaires