Compte à rebours javascript

Résolu/Fermé
baujerome Messages postés 11 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 10 mars 2009 - 5 mai 2008 à 19:10
 Mel - 23 nov. 2011 à 10:13
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 ...
A voir également:

4 réponses

Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 210
5 mai 2008 à 20:51
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
Merci, ça marche impec
0
Merci, ça marche trop bien...
0
Super merci!
0
baujerome Messages postés 11 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 10 mars 2009 5
5 mai 2008 à 22:24
Merci merci, j'ai pu adapter tout ca et ca marche a merveille ...

Probleme résolu !
5
Merci, très bien fait
0
dj-postka Messages postés 2305 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 11 février 2019 302
20 déc. 2010 à 09:42
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