2010-10-18 9 views
0

Je construis une minuterie pour un site web qui comptera entre deux php date() s. Le site utilise tout php et il y a beaucoup de fonctions temps/date qui se fondent sur date_default_timezone_set(), etc.Compte à rebours Javascript entre deux dates php

Donc, retour tot il Timmer ...

Je peux le faire fonctionner, eh bien si je rafraîchir mon écran chaque seconde, le problème que j'ai actuellement est la date/heure est appelée via php, et évidemment ne sera pas actualisé lorsque la fonction javascript. Quelle serait la meilleure action? Comment puis-je obtenir le:

dateNow = new Date(<?php date_default_timezone_set($row_currentauction['timezone_auc']); echo date("Y,m,d,H,i,s"); ?>); 

partie de mon script à mettre à jour?

code actuel (utilise Mootools pour faire basculer l'image vers le bas comme un panneau d'affichage de l'aéroport, enlevé par exemple):

<script type="text/javascript"> 
    //<![CDATA[ 
    function retroClock(){ 

     dateFuture = new Date(<?php echo javadateEnd($row_currentauction['startdate_auc'], $row_currentauction['duration_auc'], $row_currentauction['extend_auc'],$row_currentauction['timezone_auc']); ?>); 
     dateNow = new Date(<?php date_default_timezone_set($row_currentauction['timezone_auc']); echo date("Y,m,d,H,i,s"); ?>); 

     difference = dateFuture.getTime() - dateNow.getTime(); //calculates difference between dates in ms 

     days = 0; hours = 0; mins = 0; secs = 0; 

     difference = Math.floor(difference/1000); //omit the "milliseconds" 

     days = Math.floor(difference/86400);//days 
     difference = difference%86400; 

     hours = Math.floor(difference/3600);//hours 
     difference = difference%3600; 

     mins = Math.floor(difference/60);//minutes 
     difference = difference%60; 

     secs = Math.floor(difference);//seconds 

     if(days < 2){document.getElementById('days').innerHTML="day";}else{document.getElementById('days').innerHTML="days";} 
     if(hours < 2){document.getElementById('hours').innerHTML="hour";}else{document.getElementById('hours').innerHTML="hours";} 
     if(mins < 2){document.getElementById('minutes').innerHTML="minute";}else{document.getElementById('minutes').innerHTML="minutes";} 
     if(secs < 2){document.getElementById('seconds').innerHTML="second";}else{document.getElementById('seconds').innerHTML="seconds";} 

     //change pads 
     //rest of script... 
    } 

    setInterval('retroClock()', 1000); 

    //]]> 
</script> 

Répondre

0

Vous ne pouvez pas mettre Php dans un script javascript (Php est une technologie côté serveur alors que javascript est une technologie côté client) mais vous pouvez récupérer vos dates en utilisant Ajax.

+0

PHP peut, cependant, produire du texte qui peut être utilisé comme javascript. C'est souvent plus facile que de compter sur AJAX. – GordonM

+0

J'avais pensé à Ajax, mais j'espérais d'une autre façon, ne pas vouloir charger un autre fichier chaque seconde ... – jimbo