1、JS代码
<script language="JavaScript" type="text/javascript">
var now = new Date();
function createtime(){
var grt= new Date("8/08/2011 20:00:00");
now.setTime(now.getTime()+250);
days = (grt - now) / 1000 / 60 / 60 / 24;
dnum = Math.floor(days);
hours = (grt - now) / 1000 / 60 / 60 - (24 * dnum);
hnum = Math.floor(hours);
if(String(hnum).length ==1 ){hnum = "0" + hnum;}
minutes = (grt - now) / 1000 /60 - (24 * 60 * dnum) - (60 * hnum);
mnum = Math.floor(minutes);
if(String(mnum).length ==1 ){mnum = "0" + mnum;}
seconds = (grt - now) / 1000 - (24 * 60 * 60 * dnum) - (60 * 60 * hnum) - (60 * mnum);
snum = Math.round(seconds);
if(String(snum).length ==1 ){snum = "0" + snum;}
document.getElementById("timeDate").innerHTML = dnum +"天"+ hnum + "小时"+ mnum + "分"+ snum+ "秒";
}
setInterval("createtime()",250);
</script>
<div class="Bjday" id="timeDate"></div>
2、
其中var grt= new Date("8/08/2011 20:00:00");的时间在页面加载时根据服务器和客户机的时间差(秒)进行动态获取
例如:客户计算机目前的时间是2011-3-25 10:00:00 而服务器的时间时间是2011-3-25 10:00:10 那么2者差10秒
则在该客户端访问页面时8/08/2011 20:00:00值则自动变更为8/08/2011 20:00:10开始计时
js中 var now=new Date();获取的是客户端的时间
3、JS文件再判断时间到了避免出现负值
4、如果now的时间取服务器的时间,在刷新时如果频繁取服务器的时间则对服务器负荷过大,那将是致命的。
在不使用AJAX框架的情况,期待更好的解决方案,这是一个思路