A voir également:
- Correction javascript date et heure
- Telecharger javascript - Télécharger - Langages
- 35 go internet équivalent en heure ✓ - Forum Mobile
- Cette photo n’a pas été prise cette année. trouvez la date, l'heure et avec quel modèle d'appareil photo elle a été prise. - Forum Samsung
- Convertir heure en centième excel ✓ - Forum Excel
- 1go internet = combien d'heure ✓ - Forum Réseaux sociaux
1 réponse
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
524
19 janv. 2016 à 14:13
19 janv. 2016 à 14:13
Salut,
Ton code semble correct.
Pour afficher les minutes sur deux chiffres, le plus simple est de vérifier si le nombre de minutes est inférieur à 10 et d'ajouter le caractère 0 devant si c'est le cas (exemple ci-dessous avec l'écriture ternaire).
Puisque la plus petite unité affichée est la minute et non la seconde, tu peux donc mettre à jour l'heure toutes les minutes plutôt que chaque seconde afin d'optimiser un peu ton script.
Bonne journée,
Ton code semble correct.
Pour afficher les minutes sur deux chiffres, le plus simple est de vérifier si le nombre de minutes est inférieur à 10 et d'ajouter le caractère 0 devant si c'est le cas (exemple ci-dessous avec l'écriture ternaire).
Puisque la plus petite unité affichée est la minute et non la seconde, tu peux donc mettre à jour l'heure toutes les minutes plutôt que chaque seconde afin d'optimiser un peu ton script.
<p>Nous sommes le <span id="jour-sem"></span> <span id="jour"></span> <span id="mois"></span> <span id="annee"></span>, il est <span id="heure"></span></p> <script type="text/javascript"> function Timer() { var dt=new Date() document.getElementById('heure').innerHTML = dt.getHours() + ":" + ((dt.getMinutes() < 10 ? '0' : '') + dt.getMinutes()); setTimeout("Timer()",60000); } Timer(); var d = new Date(); var days = ["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"]; document.getElementById("jour-sem").innerHTML = days[d.getDay()]; document.getElementById("jour").innerHTML = [d.getDate()]; var months = ["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"]; document.getElementById("mois").innerHTML = months[d.getMonth()]; document.getElementById("annee").innerHTML = [d.getFullYear()]; </script>
Bonne journée,
19 janv. 2016 à 22:10
Bonne idée de réduire l'intervalle de mise à jour, je n'y avais pas pensé.
Sais-tu pourquoi lorsque je met ce script dans un fichier "script.js" que j'appelle dans le head de mon fichier html, ça ne fonctionne plus ? :/
20 janv. 2016 à 09:17
Peux tu nous montrer tes codes sinon ?
20 janv. 2016 à 10:12
Modifié par Pitet le 20/01/2016 à 13:48
La solution est donc de déplacer la balise <p>Nous sommes le... dans le fichier html et de supprimer les balises script dans le fichier script.js (qui ne doit contenir que le code javascript).
Edit: je n'avais pas vérifier que tu avais déjà bien déplacer l'affichage de l'heure dans le fichier html.
Tu auras par contre un autre problème dû au fait que ton script js est exécuté dès son chargement, le problème étant que lorsque le javascript est chargé et exécuté, ton code html lui n'est pas encore complètement chargé et l'instruction document.getElementById('heure') va retourner une erreur puisque l'élément n'existe pas encore.
La solution est donc de dire à javascript d'attendre le chargement complet de la page avant d'exécuter le script. Le plus simple pour faire cela est de définir une fonction sur l'événement onload de la page.
En résumé ton fichier script.js devrait donc contenir le code suivant :
21 janv. 2016 à 19:35
Une dernière chose, sais-tu si la date se met à jour comme l'heure : toute les minutes ?