js 倒计时功能 (未测试)

//主方法
function xxx(){
    //获取2个时间,一个是当前时间,一个是活动开始时间。然后传到getTimeOutMix方法中,
    //currentTime传过来的时候就是毫秒,startTimeStr时间是xxxx/hh/mm/ss 00:00:00格式
    var timeOutMis = getTimeOutMis(currentTime,startTimeStr);
    var serverTimeArray = [];
    serverTimeArray.push(timeOutMis);
    countdown(serverTimeArray);
}
function getTimeOutMis(currentTime,startTimeStr) {
    		
    		var startTime = 0;
    		if(startTimeStr != null || startTimeStr != '') {
    		    //把startTimeStr的格式转换为毫秒
    			startTime = Date.parse(new Date(startTimeStr));
    		}
    		
    		console.log(currentTime+ '==' + startTimeStr);
    		console.log(currentTime+ '==' + startTime);
    		
    		var timeVal = startTime - currentTime;
    		
    		console.log(timeVal);
    		
    		return timeVal;
}
    	
    function countdown(time_distance) {
            //var $timer = $(".js_countdown");
           // if ( $timer.size() < 0 || !isArray($timer)) {
            /*
            if ( $timer.size() < 0 || !isArray($timer)) {
                return;
            }
    */
            
            var $timer = $(".js_countdown");
            if ( $timer.size() < 0 || !isArray(time_distance)) {
                return;
            }
            
            $timer.each(function(e) {
                var time_arry = time_distance[e];
                var me = $(this);
                main(time_arry,me); 
            });

            function isArray(obj) {  
                return Object.prototype.toString.call(obj) === '[object Array]';   
            }

            function main(time_arry,elem) {

                if (time_arry >= 0) {
                    var int_day, int_hour, int_minute, int_second;
                    var timeDown = time_arry,timerID;
                    //int_day = Math.floor(timeDown / 86400000);
                    //timeDown -= int_day * 86400000;
                    int_hour = Math.floor(timeDown / 3600000);
                    timeDown -= int_hour * 3600000;
                    int_minute = Math.floor(timeDown / 60000);
                    timeDown -= int_minute * 60000;
                    int_second = Math.floor(timeDown / 1000);

                    //int_day = int_day < 10 ? "0" + int_day : int_day;
                    int_hour = int_hour < 10 ? "0" + int_hour : int_hour;
                    int_minute = int_minute < 10 ? "0" + int_minute : int_minute;
                    int_second = int_second < 10 ? "0" + int_second : int_second;

                    if(int_hour >=999) {
                    	int_hour = 999;
                    }
                     
                     //把时,分,秒设置到页面class=count_hour,count_min,count_sec的元素上去
                    //elem.find(".day").text(int_day);
                    elem.find(".count_hour").text(int_hour);
                    elem.find(".count_min").text(int_minute);
                    elem.find(".count_sec").text(int_second);

                    //倒计时结束 重置计时器
                    if (parseInt(int_hour) == 0 && parseInt(int_minute) == 0 && parseInt(int_second) == 0) {
                    	
                        clearTimeout(timerID);
                        return;    
                    }
                    time_arry -= 1000;
                    timerID = setTimeout(function() {
                        main(time_arry,elem);
                    }, 1000);
                } else {
	            	
                    clearTimeout(timerID);
                }
            }
           // main();
        }


简单来说,过程是。计算2个时间的时间差。先把2个时间转换为毫秒,再相减。这个结果是倒计时的时间。

然后再把这个结果转换为日,时,分,秒,就好了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值