Decompte de jours - Javascript

Résolu/Fermé
Eiji - Modifié par Eiji le 31/05/2012 à 11:39
 Eiji - 31 mai 2012 à 13:59
Salutations!
Je suis actuellement en train d'essayer de faire un petit compteur en Javascript, pour afficher sur mon site le temps restant avant un évènement. Cependant je rencontre des difficultés quand a l'affichage et la mise a jour de celui-ci, seconde par seconde.


Voici mon code :
var delais=0;  

function getDelay(){  
 var dateEvent = new Date('2013', '07', '31');  
 var dateNow = new Date();  
 var d = dateEvent.getTime() - dateNow.getTime();  
 return d;  
}  

delais = getDelay();  

function startCompteur(delais){  
 setInterval(bip, 1000);  
}  

function bip()  
{  
 var nBJour = Math.floor(delais/86400000);  
 var resteJour = delais%86400000;  
 var nbHeure = Math.ceil(resteJour/3600000);  
 var resteHeure = resteJour%3600000;  
 var nbMinute = Math.ceil(resteHeure/60000);  
 var resteMinute = resteHeure%60000;  
 var nbSeconde = Math.ceil(resteMinute/1000);  
 document.getElementById("bip").innerHTML = nbJour+"jours, "+nbHeure+"h"+nbMinute+"min"+nbSeconde+"s";  
}  



Merci pour votre aide! Toutes les propositions sont les bienvenue ;)

2 réponses

Utilisateur anonyme
31 mai 2012 à 12:10
Bonjour

Tu as une erreur dans le nom de ta variable nBJour ou nbJour. Javascript distingue les majuscules des minuscules.
delais = getDelay(); devrait être à l'intérieur de bip(), sinon le délai est calculé une fois pour toute et ne change plus.
Et il ne faut pas oublier d'appeler une fois startCompteur() pour démarrer le système.
Actuellement, le paramètre passé à startCompteur ne sert à rien. Il pourrait être utile de lui passer la date finale.
0
Merci, ca marche, fiou...

Hum par contre je n'ai pas compris pour le startCompteur. Lui passer la date final dans quel but?
^^'
0
Utilisateur anonyme
31 mai 2012 à 13:24
C'était juste une suggestion.
Au départ, je voulais simplement te dire que ce paramètre ne servait à rien et que tu devrais le supprimer.
Puis je me suis dit qu'en le remplaçant par la date finale, ça permettrait d'éviter de figer la date dans le code de la fonction, ce qui est toujours une bonne chose. Mais en fait ça n'a pas d'intérêt dans ton cas, sinon celui de prendre de bonnes habitudes.
Ça aurait pu en avoir si tu avais écrit en objet, ça permettrait de gérer plusieurs comptes à rebours sur la même page.
0
Ah ok :p, et bien merci! :)
0