最近在帮一个朋友在shopex485上做一个团购的功能,前台的团购商品倒计时,因为团购的商品可能是多个,各个商品的结束时间也不一定是相同的。所以就有必要做个对象来给各个商品。折腾了一个晚上,终于新鲜出炉了。在js对象里使用setTimeout还是有点学问的。
<script type="text/javascript">
//服务器时间
var service_time=<?php echo $now_time; ?>;
function showTime(tuanid,time_distance){
this.tuanid = tuanid;
//PHP时间是秒,JS时间是微秒
this.time_distance = time_distance*1000;
}
showTime.prototype.setTimeShow=function(){
var timer = $('lefttime_'+this.tuanid);
var str_time;
var int_day,int_hour,int_minute,int_second;
time_distance = this.time_distance;
this.time_distance = this.time_distance-1000;
if(time_distance>0){
int_day=Math.floor(time_distance/86400000);
time_distance-=int_day*86400000;
int_hour=Math.floor(time_distance/3600000);
time_distance-=int_hour*3600000;
int_minute=Math.floor(time_distance/60000);
time_distance-=int_minute*60000;
int_second=Math.floor(time_distance/1000);
if(int_hour<10)
int_hour="0"+int_hour;
if(int_minute<10)
int_minute="0"+int_minute;
if(int_second<10)
int_second="0"+int_second;
str_time=int_day+"天"+int_hour+"小时"+int_minute+"分钟"+int_second+"秒";
timer.innerHTML = str_time;
var self=this;
setTimeout(function(){self.setTimeShow();},1000);//D:正确
}else{
timer.innerHTML ='团购结束';
return;
}
}
</script>