1. 程式人生 > >js的倒計時 伺服器時間與本地時間不一致

js的倒計時 伺服器時間與本地時間不一致

一、單個的倒計時

// 設定開始時間,注意時間格式
        var setstartTime="2015/07/30 15:00:00";
        // 設定結束時間,注意時間格式
        var setendTime="2015/07/31 19:00:00";

         var EndTime=new Date(setendTime);
         var StartTime=new Date(setstartTime);
         // 預熱時間
         var warm_up=new Date(StartTime.getFullYear()+"/"+(StartTime.getMonth()+1)+"/"+StartTime.getDate()+" 00:00:00");
         var nMS;
        function timer(){
                //時間預設值 
                var day=0,
                    hour=0,
                    minute=0,
                    second=0;  
                var NowTime = new Date();
                if(NowTime.getTime()<warm_up){
                    // 活動預熱未開始或沒有活動
                    sTodayText = '暫無活動';
                    hour = 0;  
                    minute = 0;  
                    second = 0;
                }else if(NowTime.getTime()>warm_up && NowTime.getTime()<StartTime){
                    sTodayText = '距離秒殺活動開始還有';
                    nMS = StartTime - NowTime.getTime();
                    hour = Math.floor(nMS/(1000*60*60));  
                    minute = Math.floor(nMS/(1000*60)) % 60;  
                    second = Math.floor(nMS/1000) % 60;
                }else if(NowTime.getTime()>StartTime && NowTime.getTime()<EndTime){
                    sTodayText = '距離本次秒殺活動結束還有'; 
                    nMS = EndTime - NowTime.getTime();
                    hour = Math.floor(nMS/(1000*60*60));  
                    minute = Math.floor(nMS/(1000*60)) % 60;  
                    second = Math.floor(nMS/1000) % 60;
                }else if(NowTime.getTime()>EndTime){
                    sTodayText = '秒殺活動已結束';
                    hour = 0;  
                    minute = 0;  
                    second = 0;
                    clearInterval(setST);
                }
                 jQuery('.xi-time .hour').text(formatDate(hour));
                 jQuery('.xi-time .minute').text(formatDate(minute));
                 jQuery('.xi-time .second').text(formatDate(second));
                 jQuery(".xi-box .xi-hd h3").html(sTodayText);
        }
</pre><pre name="code" class="javascript">// 格式化時間
    function formatDate(oDate) {
        oDate=parseInt(oDate)
        oDate = oDate< 10 ? '0'+oDate : oDate;
        return (oDate);
    }

二、多個倒計時   拷貝的

<body>  
    <div id="timer1">  
    </div>  
    <div id="timer2">  
    </div>  
    <div id="timer3">  
    </div>  
</body>
<script type="text/javascript">
    var addTimer = function () {     
        var list = [],     
            interval;
        return function (id, time) {     
            if (!interval)     
                interval = setInterval(go, 1000);     
            list.push({ ele: document.getElementById(id), time: time });     
        }     
    
        function go() {     
            for (var i = 0; i < list.length; i++) {     
                list[i].ele.innerHTML = getTimerString(list[i].time ? list[i].time -= 1 : 0);     
                if (!list[i].time)     
                    list.splice(i--, 1);     
            }     
        }     
    
        function getTimerString(time) {     
                d = Math.floor(time / 86400),     
                h = Math.floor((time % 86400) / 3600),     
                m = Math.floor(((time % 86400) % 3600) / 60),     
                s = Math.floor(((time % 86400) % 3600) % 60);     
            if (time>0)     
                return d + "天" + h + "小時" + m + "分" + s + "秒";       
            else return "時間到";     
        }     
    } ();
	
    addTimer("timer1", 99999);     
    addTimer("timer2", 66666);     
    addTimer("timer3", 33333);   
</script> 

PS:解決本地時間與伺服器時間不一致問題

var NowTime = (伺服器時間-本地時間)+new Date();