html代码:
<div class="endtime" value="1354365003"></div> <div class="endtime" value="1350748800"></div> <div class="endtime" value="1346487780"></div> <div class="endtime" value="1367380800"></div>
js代码:
var serverTime = 1000; //服务器时间,毫秒数 $(function(){ var dateTime = new Date(); var difference = dateTime.getTime() - serverTime; //客户端与服务器时间偏移量 setInterval(function(){ $(".endtime").each(function(){ var obj = $(this); endTime = new Date(parseInt(obj.attr('value')) * 1000), nowTime = new Date(); nMS=endTime.getTime() - nowTime.getTime() + difference, myD=Math.floor(nMS/(1000 * 60 * 60 * 24)); //天 myH=Math.floor(nMS/(1000 * 60 * 60)) % 24, //小时 myM=Math.floor(nMS/(1000 * 60)) % 60, //分钟 myS=Math.floor(nMS/1000) % 60, //秒 myMS=Math.floor(nMS/100) % 10; //拆分秒 if(myD>= 0){ var str = myD+"天"+myH+"小时"+myM+"分"+myS+"."+myMS+"秒"; }else{ var str = "已结束!"; } obj.html(str); }); }, 100); //每0.1秒执行一次 });
注解:
每个活动定义了结束时间.endtime属性value的值,这个值是一串数字,表示自1970年1月1日以来的秒数,由后台(PHP)生成。比如结束时间2013-05-01 12:00可以通过PHP转换为1367380800秒,转换后的秒数可以用来接下来的jQuery计算倒计时。