我想写一个倒数计时器,它从服务器(php)获取时间,然后在客户端(JavaScript)倒计时。不幸的是,我只有一些JavaScript或JQuery的经验。这时脚本是这样的:使用PHP和JavaScript实现倒数
<?php
$endTime = mktime(00, 00, 00, 01, 01, 2012);
$actTime = time();
$difTime = $endTime - $actTime;
$seconds = $difTime;
?>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
window.setInterval(function() {
var seconds = $('div#timer').html();
var updateTime = eval(seconds)- eval(1);
$('div#timer').html(updateTime);
}, 1000);
});
</script>
<div id="timer"><?php echo $seconds ?></div>
现在我想剩下的秒转换为天,月,分钟和秒。但是,我不知道如何通过函数 setInterval实现这一点。谁能帮我?也许有更好的方法来处理UNIX-Timestamp?
预先感谢您!
马丁
请注意,'setInterval()'(和'setTimeout()')不能保证回调将按照您指定的时间间隔执行,所以通常是一个好主意,让当前时间开启每次迭代(并根据需要计算与原始服务器指定时间的偏移量)。出于同样的原因,如果将时间间隔设置为明显小于1秒的时间,例如50-100毫秒,那么通常情况下会获得更平滑的时钟。这样,如果时间间隔稍微延迟,则不会觉得计数器跳得太多。 – nnnnnn 2011-12-21 21:18:16