js的倒計時 伺服器時間與本地時間不一致
阿新 • • 發佈:2019-01-31
一、單個的倒計時
// 設定開始時間,注意時間格式 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();