我有一個倒計時器下面的JavaScript代碼:的Javascript倒數計時器在GMT/UTC
var end = new Date('10/26/2016 4:00 PM');
var _second = 1000;
var _minute = _second * 60;
var _hour = _minute * 60;
var _day = _hour * 24;
var timer;
function showRemaining() {
var now = new Date();
var distance = end - now;
if (distance < 0) {
clearInterval(timer);
document.getElementById('countdown').innerHTML = 'EXPIRED!';
return;
}
var days = Math.floor(distance/_day);
var hours = Math.floor((distance % _day)/_hour);
var minutes = Math.floor((distance % _hour)/_minute);
var seconds = Math.floor((distance % _minute)/_second);
document.getElementById('countdown').innerHTML = minutes + 'mins ' + seconds + 'secs';
}
timer = setInterval(showRemaining, 1000);
這工作,但問題是我需要的倒數計時器上GMT/UTC時間,我的所有時間工作在站點/服務器上都以這種方式存儲。
此刻此倒數計時器正在使用now
設置的用戶當地時間。該腳本將在全球範圍內訪問,因此我不能使用本地時區,它必須採用GMT/UTC格式。
即截至發佈時間,當前GMT時間爲13:17,但如果我在英國訪問腳本,當地時間是14:17,因此倒計時超過1小時。
我知道JavaScript有
toUTCString()
方法,但是當我試圖把這種對
function showRemaining() {
var now = new Date().toUTCString();
...
它導致這樣的輸出:
NaNmins NaNsecs
的jsfiddle在這裏=>https://jsfiddle.net/pzbz35q1/1/
沒有 「本地」 Date對象,他們都是UTC。字符串「10/26/2016 4:00 PM」沒有時區偏移量,因此如果解析爲日期將爲具有不同時區偏移量的每個主機顯示不同的時間。 – RobG