Débutant : fonction pour transformer un temps en secondes en jour heure minute seconde

Description

Voila ce script (non-dynamique) en PHP est on ne peut plus simple, il permet de passer d'un temps exprimé en secondes (mettons 125000), donc très logique un temps enregistré dans une BDD sous la forme int (entier), en un horaire affichable sur un page.

Son fonctionnement =>
1ere étape :
Il retranche le nombre de jours au compteur de secondes et crée une variable $jour.
Il retranche le nombre d'heures au compteur de secondes et crée une variable $heure.
Il retranche le nombre de minutes au compteur de secondes et crée une variable $minute.
Il crée une variable $secondes avec ce qu'il reste.

2eme étape :
Il rajoute les 0 manquants aux valeurs en dessous de 10 pour les rendre affichables.

3eme étape :
Il sélectionne l'affichage des données pour éviter d'en afficher trop, du genre temps = 0j 00:00:10, mais pour afficher seulement 00:10 (ou personnalisable, bien sur).

et il retourne la valeur dans une variable de type chaîne de caractère.

Source / Exemple :


<!-- fonction de conversion secondes => Jour Heure Minute Seconde - Par MonkeyIsBack le 13 novembre 2009 -->
<?php
// Fonction convertir secondes en heures
function Convert_Sec_JHms($Seconde)
{
	// Transformation Secondes en Jour Heure minute seconde
	while ($Seconde >= 86400)
	{$Jour = $Jour + 1; $Seconde = $Seconde - 86400;}
	while ($Seconde >= 3600)
	{$Heure = $Heure + 1; $Seconde = $Seconde - 3600;}
	while ($Seconde >= 60)
	{$Minute = $Minute + 1; $Seconde = $Seconde - 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)
	{$Convert = $Jour.'j '.$Heure.':'.$Minute.':'.$Seconde; return $Convert;}
	elseif ($Heure > 0)
	{$Convert = $Heure.':'.$Minute.':'.$Seconde; return $Convert;}
	elseif ($Minute > 0)
	{$Convert = $Minute.':'.$Seconde; return $Convert;}
	else
	{$Convert = '00:'.$Seconde; return $Convert;}
}?>

Conclusion :


Conclusion :

Pour appeller la fonction, il suffit de faire :

<?php $TempsJHms = function Convert_Sec_JHms(12500);
echo $TempsJHms; // affiche 20:00 ?>

ou, plus simple mais plus risqué pour le bon fonctionnement du code :

<?php echo Convert_Sec_JHms(150200); // affiche 1j 17:43:20 ?>

Bien sur, on peut s'en servir très facilement avec une variable

Convert_Sec_JHms($Valeur);

Codes Sources

A voir également

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.