cs_basto
Messages postés1Date d'inscriptionmercredi 18 février 2004StatutMembreDernière intervention 5 juin 2007
-
5 juin 2007 à 17:19
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 2013
-
6 juin 2007 à 06:23
Bonjour, j'ai fait un amalgame de script pour obtenir un chronometre qui affiche la différence de temps écoulé depuis une date php antérieur et la date actuelle du serveur. Le script marche très bien, le seul problème est que plus le temps passe, plus le compteur cumule du retard. Un délais de 2 secondes toutes les 30 secondes environs.
voici le monstre :
<script type="text/javascript">
<?
$debut = explode(" ", $infoTache["DebutTravail"]);
$nbJours = explode("-", $debut[0]);
$HMS = explode(":", $debut[1]);
?>
//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 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));
}
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 au moment de l'affichage
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'); ?>;
//incrémente l'heure actuel a partir de l'heure obtenu du serveur
function HeureCheckEJS()
{
if (secS >= 59)
{
secS = 0;
if (minS>= 59)
{
minS = 0;
if (heureS >= 23)
heureS = 0;
else
heureS++;
}
else
minS++;
}
else
secS++;
DinaHeure = new Date(jourS +','+ moisS + ','+ anneeS+ ' '+ heureS + ":" + minS + ":" + secS);
which = DinaHeure
return DinaHeure
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 6 juin 2007 à 06:23
Bonjour,
setTimeout("HeureCheckEJS()", 1000)
ça ne va pas déclencher toutes les secondes au 100è près déjà !
( je n'ai pas regardé le reste )
il faut utiliser l'heure du micro et non pas incrémenter des compteurs.