Bonjour, j'ai développé a partir de script existant sur le web un chornomètre qui calcule le temps écoulé depuis une date stocké coté serveur et l'heure actuelle en fonction de l'heure du serveur qui s'incrémente.
Mon problème, a environs toutes les 30 secondes, je cumule un retard de 2 secondes. Pourriez-vous me dire à quoi cela peut être dû?
Modifié par L-0sWald (05 Jun 2007 - 18:35)
Mon problème, a environs toutes les 30 secondes, je cumule un retard de 2 secondes. Pourriez-vous me dire à quoi cela peut être dû?
<script type="text/javascript">
//va chercher l'heure du debut tâche
var maintenant = new Date ("<?echo $nbJours[2].", ".$nbJours[1].", ".$nbJours[0]." ".$HMS[0].":".$HMS[1].":".$HMS[2];?>");
//var maintenant = new Date("jour, mois date année heures:minutes:secondes")
var Start = maintenant.getTime();
function affiche_heure()
{
var secondes_abs = Math.abs(Math.round(calcul_temps()));
var secondes_rel = secondes_abs % 60;
var minutes_abs = Math.abs(Math.round((secondes_abs-30)/60));
var nombre_secondes ="" + ((secondes_rel > 9) ? secondes_rel : "0" + secondes_rel);
var nombre_minutes ="" + ((minutes_abs > 9) ? minutes_abs : "0" + minutes_abs);
document.affD.ejs_heure.value= nombre_minutes + ":" + nombre_secondes;
window.setTimeout('affiche_heure()',1000);
}
window.onload = affiche_heure;
function calcul_temps()
{
//encore et tjrs est la var du temps réel qui se rafraichit
var encore_toujours = HeureCheckEJS();
return((encore_toujours.getTime()- Start)/1000);
}
//détermination de l'heure du serveur
var jourS = <?php echo date('j'); ?>;
var moisS = <?php echo date('n'); ?>;
var anneeS = <?php echo date('Y'); ?>;
var heureS = <?php echo date('H'); ?>;
var minS = <?php echo date('i'); ?>;
var secS = <?php echo date('s'); ?>;
function HeureCheckEJS()
{
if (secS >= 59)
{
secS = 0;
if (minS>= 59)
{
minS = 0;
if (heureS >= 23)
heureS = 0;
else
heureS++;
}
else
minS++;
}
else
secS++;
dateActuServ = new Date(jourS +','+ moisS + ','+ anneeS+ ' '+ heureS + ":" + minS + ":" + secS);
return dateActuServ;
}
setTimeout("HeureCheckEJS()", 1000);
</script>
Modifié par L-0sWald (05 Jun 2007 - 18:35)