0
我正在为一个网站构建一个计时器,它将在两个php日期()之间倒计时。 整个网站使用PHP和有大量的时间/日期函数依赖于date_default_timezone_set()等Javascript计时器在两个php日期之间倒计时
所以,回到托特他蒂默...
我能得到它的工作,那么,如果我每秒刷新我的屏幕,我现在遇到的问题是通过php调用日期/时间,并且当javascript函数执行时显然不会刷新。最好的行动是什么?我怎么能得到:我的脚本
dateNow = new Date(<?php date_default_timezone_set($row_currentauction['timezone_auc']); echo date("Y,m,d,H,i,s"); ?>);
部分更新?
当前代码(使用mootools的翻转图像向下像机场的显示牌,例如删除):
<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>
检索您的日期,但是PHP可以输出可用作javascript的文本。这通常比依靠AJAX更容易。 – GordonM 2010-10-18 16:16:26
我曾经想过Ajax,但希望有另一种方法,不要幻想每秒钟加载另一个文件... – jimbo 2010-10-19 07:32:18