Compte à rebours javascript

Résolu
baujerome Messages postés 11 Statut Membre -  
 Mel -
Bonjour,
j'ai un compte à rebours (js) sur mon site qui fonctionne parfaitement. Enfin presque parfaitement. En effet, lorsque l'événement est dépassé, il continue à compter dans le négatif. Serait-il possible d'ajouter une application au script pour faire en sorte que quand l'événement est fini, le compte à rebours s'arrête à zéro. Je pense que oui mais je ne sais pas comment. J'avais pensé à utiliser un "if" mais comme je ne joue pas souvent avec le javascript, je crois que c'est pas très correct ...

Voici mon code js :

var cible = new Date("March 16, 2008 05:00:00");


var mms_jour = 24 * 60 * 60 * 1000;
var mms_heure = 60 * 60 * 1000;
var mms_minute = 60 * 1000;
var mms_seconde = 1000;

function decompte() {


var aujourdhui = new Date();


var change_j = -7;
var change_h = -7;
var change_m = -7;


var diff_mms = cible.getTime() - aujourdhui.getTime();


diff_jours = Math.floor(diff_mms / mms_jour);
diff_mms -= diff_jours * mms_jour;

diff_heures = Math.floor(diff_mms / mms_heure);
diff_mms -= diff_heures * mms_heure;


diff_minutes = Math.floor(diff_mms / mms_minute);
diff_mms -= diff_minutes * mms_minute;


var diff_secondes = Math.floor(diff_mms / mms_seconde);


if (diff_secondes<0){
	document.getElementById("jours").innerHTML == 0;
	document.getElementById("heures").innerHTML  == 0;
	document.getElementById("minutes").innerHTML  == 0;
	document.getElementById("secondes").innerHTML == 0;
}
else {
document.getElementById("jours").innerHTML = diff_jours;
document.getElementById("heures").innerHTML  = diff_heures;
document.getElementById("minutes").innerHTML  = diff_minutes;
document.getElementById("secondes").innerHTML = diff_secondes;
}


setTimeout("decompte()",1000);
}
 


Merci d'avance pour votre aide ...
Configuration: Windows XP
Firefox 2.0.0.14

4 réponses

  1. Tiller Messages postés 783 Statut Membre 211
     
    En fait j'ai eu la fleme de chercher a comprendre le code, j'en ai refait un ^^
    Soit voit sur le mien pour adapte le tiens, soit prend le miens ^^

    <script>
    var cible = new Date('December 25, 2008 00:00:00');
    var time = parseInt(cible.getTime() / 1000, 10);
    
    function decompte()
    {
    	var aujourdhui = new Date();
    	time_tmp = parseInt(aujourdhui.getTime() / 1000, 10);
    	restant = time - time_tmp;
    	
    	jour = parseInt((restant / (60 * 60 * 24)), 10);
    	heure = parseInt((restant / (60 * 60) - jour * 24), 10);
    	minute = parseInt((restant / 60 - jour * 24 * 60 - heure * 60), 10);
    	seconde = parseInt((restant - jour * 24 * 60 * 60 - heure * 60 * 60 - minute * 60), 10);
    	
    	document.getElementById('jours').innerHTML = jour;
    	document.getElementById('heures').innerHTML  = heure;
    	document.getElementById('minutes').innerHTML  = minute;
    	document.getElementById('secondes').innerHTML = seconde;
    	
    	if (time_tmp < time)
    		setTimeout('decompte()', 1000);
    	else
    	{
    		// Temps fini, on fait ce qu'on veux
    		document.getElementById('jours').innerHTML = 0;
    		document.getElementById('heures').innerHTML  = 0;
    		document.getElementById('minutes').innerHTML  = 0;
    		document.getElementById('secondes').innerHTML = 0;
    	}
    }
    setTimeout('decompte()', 500);
    
    </script>
    
    <div id="jours"></div>
    <div id="heures"></div>
    <div id="minutes"></div>
    <div id="secondes"></div>
    15
    1. j-yan
       
      Merci, ça marche impec
      0
    2. Maestro
       
      Merci, ça marche trop bien...
      0
    3. Mel
       
      Super merci!
      0
  2. baujerome Messages postés 11 Statut Membre 5
     
    Merci merci, j'ai pu adapter tout ca et ca marche a merveille ...

    Probleme résolu !
    5
  3. dj-postka Messages postés 2409 Statut Membre 305
     
    Bonjour a tous,

    J'ai pris le script de tiller, mais j'aimerai y ajouter une redirection, comment pourrais-je faire cela ?

    Merci d'avance.
    0