IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

convertir des secondes en heures


Sujet :

JavaScript

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut convertir des secondes en heures
    Bonjour,

    J'ai des secondes et j'aimerai les convertir au format heure ?

    Comment on fait cela ?

    pour commencer :

    3600 secondes / 60 = 60 min /60 = 1 heure
    6784 secondes / 60 = 113,0666... min /60 = 1,88... heure (pas terrible comme format !)

    j'aimerai avoir la conversion en HH:mm:ss.

    Je n'y connais rien en Javascript, j'ai donc fait ce petit script, mais bien sur il ne fonctionne pas (rien ne s'affiche)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <script type="text/javascript">
     
     
    function conversion_seconde_heure(time)
    {
    	//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
    	if (time>=86400)
        {
    		// 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
    		var jour = Math.floor(time/86400);
    		// On extrait le nombre de jours
    		var reste = time%86400;
     
    		var heure = floor(reste/3600);
    		// puis le nombre d'heures
    		var reste = reste%3600;
     
    		var minute = Math.floor(reste/60);
    		// puis les minutes
     
    		var seconde = reste%60;
    		// et le reste en secondes
     
    		// on rassemble les résultats en forme de date
    		var result = jour.'j '.heure.'h '.minute.'min '.seconde.'s';
     
    	}
    	elseif (time < 86400 && 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
    		var heure = floor(time/3600);
    		var reste = time%3600;
     
    		var minute = Math.floor(reste/60);
     
    		var seconde = reste%60;
     
    		var result = heure.'h '.minute.'min '.seconde.' s';
    	}
    	elseif (time<3600 && time>=60)// si le nombre de secondes ne contient pas d'heures mais contient des minutes
    	{
    		var minute = Math.floor(time/60);
    		var seconde = time%60;
    		var result = minute.'min '.seconde.'s';
    	}
    	elseif (time < 60) // si le nombre de secondes ne contient aucune minutes
    	{
    		var result = time.'s';
    	}
     
    	return result;	
    }
     
    document.write(conversion_seconde_heure(123332221));
     
    </script>
    merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    Salut,
    Une version plus simple a lire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    	<head>
    		<script language="javascript">
    			function conversion_seconde_heure(time) {
    				var reste=time;
    				var result='';
     
    				var nbJours=Math.floor(reste/(3600*24));
    				reste -= nbJours*24*3600;
     
    				var nbHours=Math.floor(reste/3600);
    				reste -= nbHours*3600;
     
    				var nbMinutes=Math.floor(reste/60);
    				reste -= nbMinutes*60;
     
    				var nbSeconds=reste;
     
    				if (nbJours>0)
    					result=result+nbJours+'j ';
     
    				if (nbHours>0)
    					result=result+nbHours+'h ';
     
    				if (nbMinutes>0)
    					result=result+nbMinutes+'min ';
     
    				if (nbSeconds>0)
    					result=result+nbSeconds+'s ';
     
    				return result;
    			}
     
    		</script>
    		</head>
    	<body>
    		<script language="javascript">
    			document.write(conversion_seconde_heure(123332221));
    		</script>
    	</body>
    </html>
    Resultat affiche a l'ecran:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    1427j 10h 57min 1s
    ---
    Farid

  3. #3
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    Utilise l'objet Date il est fait pour ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function dateHMS(time) {
      var addZero = function(v) { return v<10 ? '0' + v : v; };
      var d = new Date(time * 1000); // js fonctionne en milisecondes
      var t = [];
      t.push(addZero(d.getHours()));
      t.push(addZero(d.getMinutes()));
      t.push(addZero(d.getSeconds()));
      return t.join(':');
    }
    alert(dateHMS(123332221));
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 14
    Points : 16
    Points
    16
    Par défaut
    Je ne sais pas pourquoi, mais j'ai toujours une heure en plus dans mon format.
    Avec hours -1, j'ai bien la bonne valeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function dateHMS(time) {
      var addZero = function(v) { return v<10 ? '0' + v : v; };
      var d = new Date(time * 1000); // js fonctionne en milisecondes
      var t = [];
      t.push(addZero(d.getHours()-1));
      t.push(addZero(d.getMinutes()));
      t.push(addZero(d.getSeconds()));
      return t.join(':');
    }
    alert(dateHMS(123332221));

  5. #5
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Il faut voir si ton timestamp est calqué sur UTC ou pas, tu peux aussi utiliser
    les variantes UTC des fonctions Date, voir ici
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] convertir des minutes en heures minutes secondes
    Par djoenis dans le forum Excel
    Réponses: 9
    Dernier message: 04/04/2011, 20h48
  2. Convertir des secondes en heure/min/sec
    Par DelphLaga dans le forum Langage
    Réponses: 8
    Dernier message: 26/02/2009, 19h29
  3. convertir des secondes en heure
    Par basket10 dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 15/06/2007, 13h38
  4. [Fonction Oracle] Convertir des secondes en heure
    Par falcon dans le forum Oracle
    Réponses: 12
    Dernier message: 18/11/2004, 11h56
  5. [Fonction SQL Serveur] convertir des secondes en heure
    Par falcon dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 17/11/2004, 17h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo