Compte à rebours javascript via heure serveur

Fermé
Titipotter - 14 mars 2012 à 12:30
 Titipotter - 14 mars 2012 à 22:50
Bonjour,

Je cherche à faire un compte-à-rebours en javascript. En faites j'y arrive mais mon seul soucis c'est que c'est l'heure du client qui est pris en compte comme temps de référence et non celui du serveur hébergement la page qui contient le compte-à-rebours. Pourtant dans l'objet date j'avascript, j'ai précisé l'heure du serveur.
Le soucis est toujours le même : Quand je change le fuseau horaire de mon PC, le temps du compte à rebours change également en fonction de ce fuseau horaire. Donc c'est toujours l'heure du PC qui est pris en compte visiblement. Bizarre car la date de référence indiqué est celle renvoyée par le serveur et non par le client.

var today = <?php echo time()*1000; ?>  
	var date2 = new Date("<?php echo $newtime; ?>"); 
	var n = 24 * 3600;
	Rebour = function Rebour() { 
		var date1 = new Date(today);
		var sec = (date2 - date1) / 1000; 
		if(sec > 0) { 
			j = Math.floor (sec / n); 
			h = Math.floor ((sec - (j * n)) / 3600); 
			mn = Math.floor ((sec - ((j * n + h * 3600))) / 60); 
			sec = Math.floor (sec - ((j * n + h * 3600 + mn * 60))); 
			if(h < 10) { h = timeImg[0]+timeImg[h]; } else { h = timeImg[String(h).substr(0,1)]+timeImg[String(h).substr(1)] } 
			if(mn < 10) { mn = timeImg[0]+timeImg[mn]; } else { mn = timeImg[String(mn).substr(0,1)]+timeImg[String(mn).substr(1)] } 
			if(sec < 10) { sec = timeImg[0]+timeImg[sec]; } else { sec = timeImg[String(sec).substr(0,1)]+timeImg[String(sec).substr(1)] } 
			$("#jours").html("dans "+j+" jours"); 
			$("#heures").html(h+timeImg[10]+mn+timeImg[10]+sec);
			today += 1000;
		} 
		tRebour = setTimeout("Rebour();", 1000); 
	}
	Rebour();


timeImg[] ce sont les images utilisées pour afficher le compte à rebours, je n'ai pas jugé utile de recopié le tableau qui génère ces images puisque cela est superflux.
$newtime correspond à la nouvelle date du format "mois jour, année h:mn:sec"
$today fait augmenté le timestamps d'une seconde. en javascrit, date peut prendre un timestamp en paramètre mais celui doit-être en millisecondes d'où le fait de multiplier le timestamp php par 1000 pour trouver les secondes en millisecondes et d'ajouter +1000 millisecondes soit 1 seconde à chaque seconde pour faire avancer le temps actuel et donc faire fonctionner le compte à rebours.
Sinon je ne trouves pas l'erreur de mon problème.
A voir également:

1 réponse

Personne?
0