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 éprouvé
    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
    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 chevronné
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    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 : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    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));

  4. #4
    Membre averti
    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
    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 : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    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

+ 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 Server] 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