08-03-2007, 02:03 PM
Pour éviter les écarts de calcul de temps sur les petits modules locaux en JS, je calcule mes infos à partir d'une date de base établie au chargement de la page.
Le setTimeout() peut se décaler tant qu'il veut, cela n'influera pas sur le calcul du temps écoulé depuis le chargement de la page.Code PHP :
<?php
<script language="javascript" type="text/javascript">
var oDate=new Date();
//dBase est la date JS qui me sert de base pour les calculs
var dBase=Math.round(oDate.getTime()/1000);
//Lancement initial de la procédure
ScanProgress();
function ScanProgress(){
//Initialisation de la date qui servira a calculer la différence
var oDate=new Date();
//dDiff contient le nombre de secondes réellement écoulées depuis le chargement de la page
var dDiff=Math.round(oDate.getTime()/1000)-dBase;
/*
Mettez ici vos traitements JS
*/
//setTimeOut pour un rappel dans 1 seconde
setTimeout(ScanProgress,1000);
}
</script>
A chaque passage dans le traitement, dDiff contiendra toujours le nombre de secondes écoulées depuis le chargement de la page.
Accessoirement, on peut se baser sur l'heure serveur en initialisant la variable dBase avec <php time(); ?> comme proposé par gtsoul.