Convertir heures en hh:mm:ss dans un array
Résolu/Fermé
rasielblas
Messages postés
135
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
12 mai 2021
-
Modifié le 11 mai 2021 à 11:33
rasielblas Messages postés 135 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 12 mai 2021 - 12 mai 2021 à 07:59
rasielblas Messages postés 135 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 12 mai 2021 - 12 mai 2021 à 07:59
A voir également:
- Convertir heures en hh:mm:ss dans un array
- Convertir youtube en mp3 avec audacity - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Convertir epub en kindle - Guide
- Convertir audio en texte word - Guide
- Convertir heure en centième excel ✓ - Forum Excel
6 réponses
jordane45
Messages postés
38457
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 mars 2025
4 740
11 mai 2021 à 12:20
11 mai 2021 à 12:20
Bonjour,
ne serait-il pas plus simple de gérer ça lors du remplissage du premier tableau ?
D'où proviennent les données ?
ne serait-il pas plus simple de gérer ça lors du remplissage du premier tableau ?
D'où proviennent les données ?
jordane45
Messages postés
38457
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 mars 2025
4 740
11 mai 2021 à 16:00
11 mai 2021 à 16:00
var stringArray = new Array("1:3:12", "2:5:4", "3:1:1", "1:1:5"); function formatHMS(arrDatas){ var newArr = arrDatas.map(item => { let explodeItem = item.split(':'); let newItem = explodeItem.map(elm=>{ return parseInt(elm)<10 ? "0"+elm : elm; }); return newItem.join(':'); }); return newArr; } formatHMS(stringArray);
rasielblas
Messages postés
135
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
12 mai 2021
9
Modifié le 11 mai 2021 à 12:32
Modifié le 11 mai 2021 à 12:32
Merci de m'avoir répondu, ce donnée vient d'un développeur que je n'ai pas accès malheureusement, je ne fais que le côté affichage. Tous ce que j'ai reçu c'est un tableau qui contient des données est doit être formaté en javascript afin d'obtenir le format hh:mm:ss
Voila le donnée que j'ai reçu:
"heure" => array:1 [▼
0 => array:1 [▼
0 => "3 : 38 : 41 "
]
Voila le donnée que j'ai reçu:
"heure" => array:1 [▼
0 => array:1 [▼
0 => "3 : 38 : 41 "
]
Salut,
il suffit de passer par l'objet Date en créant un nouvel objet pour chaque date et en utilisant les méthodes de l'objet pour obtenir le format voulu.
Il faudra bien sûr faire ça pour chaque élément du tableau(avec une fonction par exemple) dans une boucle.
Sinon le plus pratique c'est d'utiliser un timestamp unix et convertir quand on en a besoin(pour afficher par exemple) parce que le timestamp unix est un nombre entier décimal donc nettement plus simple à manipuler pour les calculs et les tris éventuels(comparaison, obtenir les dates chronologiques etc...).
https://www.w3schools.com/js/js_dates.asp
il suffit de passer par l'objet Date en créant un nouvel objet pour chaque date et en utilisant les méthodes de l'objet pour obtenir le format voulu.
Il faudra bien sûr faire ça pour chaque élément du tableau(avec une fonction par exemple) dans une boucle.
Sinon le plus pratique c'est d'utiliser un timestamp unix et convertir quand on en a besoin(pour afficher par exemple) parce que le timestamp unix est un nombre entier décimal donc nettement plus simple à manipuler pour les calculs et les tris éventuels(comparaison, obtenir les dates chronologiques etc...).
https://www.w3schools.com/js/js_dates.asp
rasielblas
Messages postés
135
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
12 mai 2021
9
Modifié le 11 mai 2021 à 15:04
Modifié le 11 mai 2021 à 15:04
Merci de m'avoir répondu on supposant que j'opte pour le timestamp comment est ce qu'on converti l'array afin de pouvoir le convertir dans le timestamp? voici mon code:
est mon array:
array=["1:1:1","2:1:1",....]
let unix_timestamp = 1549312452 // Create a new JavaScript Date object based on the timestamp // multiplied by 1000 so that the argument is in milliseconds, not seconds. var date = new Date(unix_timestamp * 1000); // Hours part from the timestamp var hours = date.getHours(); // Minutes part from the timestamp var minutes = "0" + date.getMinutes(); // Seconds part from the timestamp var seconds = "0" + date.getSeconds(); // Will display time in 10:30:23 format var formattedTime = hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2); console.log(formattedTime);
est mon array:
array=["1:1:1","2:1:1",....]
C'est des milisecondes le timestamp depuis une date précise.
Il faut bien sûr prendre en compte que tu n'a qu'une heure et que l'objet Date est une date complète donc rajouter une "journée" arbitraire.
J'ai répondu un peu vite c'est plus simple si tu n'a qu'une heure sur 24 à gérer.
"Ce que je souhaite c'est d'obtenir un format dd:mm:ss même si l'heure est inférieur à 10 "
Donc rajouter un 0 devant si l'heure est inférieure à 10 et traiter l'ensemble en texte et non en nombre à partir de là.
Le tableau ne change rien sauf qu'il faut le faire pour chaque élément du tableau.
Bien sûr une fois en chaîne de caractère(string) faire des calculs et des comparaisons avec des chiffres n'est plus possible(ou plutôt pas très pratique il faudra convertir le texte en cahcune de ses valeurs par heure, minutes, secondes à chaque fois), donc il faut voir quelle est la finalité et utilisation de vos données.
Sinon tout convertir en millisecondes et rajouter une fonction pour afficher l'heure formatée pour l'afficher et garder la valeur numérique la plus pratique.
(1heure = 60minutes, 1minutes = 60secondes, 1seconde = 1000 ms)
Il faut bien sûr prendre en compte que tu n'a qu'une heure et que l'objet Date est une date complète donc rajouter une "journée" arbitraire.
J'ai répondu un peu vite c'est plus simple si tu n'a qu'une heure sur 24 à gérer.
"Ce que je souhaite c'est d'obtenir un format dd:mm:ss même si l'heure est inférieur à 10 "
Donc rajouter un 0 devant si l'heure est inférieure à 10 et traiter l'ensemble en texte et non en nombre à partir de là.
Le tableau ne change rien sauf qu'il faut le faire pour chaque élément du tableau.
Bien sûr une fois en chaîne de caractère(string) faire des calculs et des comparaisons avec des chiffres n'est plus possible(ou plutôt pas très pratique il faudra convertir le texte en cahcune de ses valeurs par heure, minutes, secondes à chaque fois), donc il faut voir quelle est la finalité et utilisation de vos données.
Sinon tout convertir en millisecondes et rajouter une fonction pour afficher l'heure formatée pour l'afficher et garder la valeur numérique la plus pratique.
(1heure = 60minutes, 1minutes = 60secondes, 1seconde = 1000 ms)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
rasielblas
Messages postés
135
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
12 mai 2021
9
11 mai 2021 à 15:19
11 mai 2021 à 15:19
J'ai déja éssaié avec ce methode
Avec ce tableau ca fonctionne très bien mais je suis toujours bloqué sur le façon de convertir si l'array est devenu des heures:
Par exemple si je met quelque chose du genre:
var stringArray = new Array("1:3:12", "2:5:4", "3:1:1", "1:1:5");
Alors je suis un peu perdu, pouvez vous m'illustrer cela avec un peu de ligne de code si possible. Encore merci.
var stringArray = new Array("1", "2", "3", "5"); for (var i = 0; i < stringArray.length ; i++) { var ix=parseInt(stringArray[i]); var test=[]; console.log(ix); if(stringArray[i]<10){ console.log("0"+ix); } }
Avec ce tableau ca fonctionne très bien mais je suis toujours bloqué sur le façon de convertir si l'array est devenu des heures:
Par exemple si je met quelque chose du genre:
var stringArray = new Array("1:3:12", "2:5:4", "3:1:1", "1:1:5");
Alors je suis un peu perdu, pouvez vous m'illustrer cela avec un peu de ligne de code si possible. Encore merci.
rasielblas
Messages postés
135
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
12 mai 2021
9
12 mai 2021 à 07:59
12 mai 2021 à 07:59
Ca marche à la perfection, merci beaucoup , je suis vraiment content, vous êtes vraiment formidable. Je marque ce sujet comme résolu.