Page 1 sur 1

int -> hh:mm:ss

Posté : 19 mars 2005, 03:49
par pafLaXe
bonjour,

je voudrais savoir si qqun connais un moyen simple et efficace (cad sans une foret d'ifs) de transformer un entier exprimant des secondes en une chaine au format 'hh:mm:ss' (et que le 'hh:' ne soit affiché que si besoin) ?

merci d'avance...

Posté : 19 mars 2005, 06:03
par Elie
Moi j'ai un code assez long mais tres complet :)
	function calcule_temps($time) {
	
		$temps_reel = "";
		
		// Jours
		if($time > 86400) {
		
		$nbjour = floor($time/86400);	
		if($nbjour > 1) $sj = "s";
		$time = $time - ($nbjour * 86400);
		$temps_reel .= $nbjour." jour".$sj." ";
		
		}
		
		// Heure
		if($time > 3600) {
		
		$nbheur = floor($time/3600);	
		if($nbheur > 1) $sh = "s";
		$time = $time - ($nbheur * 3600);
		$temps_reel .= $nbheur." heure".$sh." ";
		
		}
		
		// Minutes
		if($time > 60) {
		
		$nbminute = floor($time/60);	
		if($nbminute > 1) $sm = "s";
		$time = $time - ($nbminute * 60);
		$temps_reel .= $nbminute." minute".$sm." ";
		
		}
		
		if($time > 1) {
		
		$temps_reel .= $time." secondes";
		
		}
		
		return $temps_reel;
	}

Posté : 19 mars 2005, 09:40
par Ripat
Ce n'est pas du js mais comme on t'a posté une solution en php....
// test pour 13:15:35
$nbSec = 46800 + 900 + 35;

// pour supprimer les multiples de 24 heures éventuels.
$nbSec = fmod($nbSec, 86400);

// affichage résultat
echo date("H:i:s", $nbSec - 3600);

Posté : 19 mars 2005, 15:57
par eSp
Voilà une soluton en JS pour transformer des secondes en minutes:

Code : Tout sélectionner

<script language="JavaScript"> <!-- var seconds=111; var min=parseInt(seconds/60); var sec=seconds%60; document.write(seconds+" secondes correspondent à "+min+"'"+sec+"''."); document.write("<br>"); // --> </script>
Pour la transformation en heures, c'est le même principe ! A toi de le faire :P

:wink: :wink:

Posté : 19 mars 2005, 20:52
par pafLaXe
c'etait bien de js dont j avais besoin.

il n y a donc pas d'equivalent au date() du php en js ? snif...

ben merci pour tout je vais me debrouiller avec ca !

Posté : 24 déc. 2006, 12:45
par Sebe
Salut,

Pour combler un besoin, j'ai dû travailler un fonction ... je la partage avec vous !
Note: J'ai repris la même valeur que Ripat pour être certain du résultat !
function formatHeure (){
	var nbr = 47735;
	if (nbr != 0) { 
		alert ("Le nbr " + nbr + " à mettre en heure !");
		var heure = Math.floor(nbr / 3600);
		var minute = Math.floor((nbr - (heure * 3600))/60 );
		var seconde = Math.floor(nbr - (heure * 3600) - (minute * 60));
		alert (heure + ":" + minute + ":" + seconde);
		return heure + ":" + minute + ":" + seconde;
	} else {
		return (false);
	}
Ce n'est certainement pas parfait mais je ne suis qu'un newbie de la programmation !

A+

Posté : 26 déc. 2006, 13:01
par Ryle
c'etait bien de js dont j avais besoin.

il n y a donc pas d'equivalent au date() du php en js ? snif...

ben merci pour tout je vais me debrouiller avec ca !
Il existe un objet Date() en javascript. Je n'ai pas essayé, mais en lui donnant un nombre de seconde uniquement dans le constructeur (en mettant années, mois, heure, ... à 0) , il devrait automatiquement te le convertir et tu pourrais récupérer les valeurs dont tu as besoin :
// Date ( year, month, date, hour, minute, second )
var dte= new Date ( 2006, 0, 1, 0, 0, 3600 );
alert ( dte.getHours() +':'+ dte.getMinutes() +':'+ dte.getSeconds() );