2017-04-10 45 views
0

24小時倒計時腳本,我需要在我的網站24小時倒計時,在每天11:00重置,之後再次啓動24小時週期。命中每天00:00 11:00

我不需要這個腳本來控制什麼,我只需要它在那裏,供遊人看到的,所以當他們在10:00訪問例如會看到還剩1小時上的時鐘,並住了下來計數格式:小時,分鐘,秒 ,我需要它忽略客戶的時區。

我發現了類似的答案,但有1個小時的窗口,它之後重置,我需要它立即復位,我怎麼可以對其進行編輯,以滿足我的要求?

這是我發現了什麼(這算至21:00將在一樓小時的窗口,比重新開始):

var date; 
var display = document.getElementById('time'); 

$(document).ready(function() { 
    getTime('GMT', function(time){ 
     date = new Date(time); 
    });  
}); 

setInterval(function() { 
    date = new Date(date.getTime() + 1000); 

    var currenthours = date.getHours(); 
    var hours; 
    var minutes; 
    var seconds; 
    if (currenthours != 21){ 
     if (currenthours < 21) { 
      hours = 20 - currenthours; 
     } else { 
      hours = 21 + (24 - currenthours); 
     } 
     minutes = 60 - date.getMinutes(); 
     seconds = 60 - date.getSeconds(); 

     if (minutes < 10) { 
      minutes = '0' + minutes; 
     } 
     if (seconds < 10) { 
      seconds = '0' + seconds; 
     } 

     display.innerHTML = hours + ':' + minutes + ':' +seconds; 
    } else { 
     display.innerHTML = 'LIVE NOW'; 
    } 
}, 1000); 

function getTime(zone, success) { 
    var url = 'http://json-time.appspot.com/time.json?tz=' + zone, 
     ud = 'json' + (+new Date()); 
    window[ud]= function(o){ 
     success && success(new Date(o.datetime)); 
    }; 
    document.getElementsByTagName('head')[0].appendChild((function(){ 
     var s = document.createElement('script'); 
     s.type = 'text/javascript'; 
     s.src = url + '&callback=' + ud; 
     return s; 
    })()); 
} 
+1

'currenthours!= 21'只檢查小時,無論其21:00或21:59,或其間的任何事物。 – Qirel

回答

0

我猜一個1數個復位是由於單獨驗證小時。請嘗試以下代碼:

var date; 
var display = document.getElementById('time'); 

$(document).ready(function() { 
    getTime('GMT', function(time){ 
     date = new Date(time); 
    });  
}); 

setInterval(function() { 
    date = new Date(date.getTime() + 1000); 

    var currenthours = date.getHours(); 
    var currentSecs = date.getSeconds(); 
    var hours; 
    var minutes; 
    var seconds; 
    if (currenthours == 23 && currentsecs == 0){ 
     display.innerHTML = 'LIVE NOW'; 
    } else { 
     if (currenthours < 23) { 
      hours = 22 - currenthours; 
     } else { 
      hours = 23; 
     } 
     minutes = 60 - date.getMinutes(); 
     seconds = 60 - date.getSeconds(); 

     if (minutes < 10) { 
      minutes = '0' + minutes; 
     } 
     if (seconds < 10) { 
      seconds = '0' + seconds; 
     } 
    display.innerHTML = hours + ':' + minutes + ':' +seconds; 
    } 
}, 1000); 
0

即使在夏令時更改期間也要獲得準確的日持續時間,您應該堅持使用日期算術。

function time() { 
    var d1 = new Date(); 
    var d2 = Date.UTC(d1.getUTCFullYear(), 
         d1.getUTCMonth(), 
         d1.getUTCDate() + (d1.getUTCHours() < 11 ? 0 : 1), 
         11); 
    var dh = d2 - d1; 
    var hours = Math.floor(dh/3600000); 
    var dm = dh - 3600000 * hours; 
    var min = Math.floor(dm/60000); 
    var ds = dm - 60000 * min; 
    var sec = Math.floor(ds/1000); 
    var dmilli = ds - 1000 * sec; 
    setTimeout(time, dmilli); 
    hours = ('0' + hours).slice(-2); 
    min = ('0' + min).slice(-2); 
    sec = ('0' + sec).slice(-2); 
    document.querySelector('#the-final-countdown p').innerHTML = hours + ':' + min + ':' + sec; 
} 
time();