日期:2014-05-16  浏览次数:20349 次

js对象应用之团购时间倒计时
最近在帮一个朋友在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>