倒数计时器javascript

时间:2015-07-30 10:22:49

标签: javascript timer

如何让倒数计时器对每个人都一样,不管他们在电脑上的时间。 脚本并不像我想的那样工作,基本上任何人都可以通过改变他们电脑上的日期和时间来改变计时器。

var end = new Date('07/31/2015 4:10 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('giveaway1').innerHTML = 'The Winner Has Been Chosen!';

        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('giveaway1').innerHTML = days + 'days ';
    document.getElementById('giveaway1').innerHTML += hours + 'hrs ';
    document.getElementById('giveaway1').innerHTML += minutes + 'mins ';
    document.getElementById('giveaway1').innerHTML += seconds + 'secs';
}

timer = setInterval(showRemaining, 1000);

1 个答案:

答案 0 :(得分:3)

由于本地PC时间超出您的控制范围,您必须至少从服务器(或第三方服务器)获得一次可靠时间。

一旦知道(正确的)服务器时间是什么,就可以从本地PC时间减去服务器时间以获得'偏移'(即服务器时间和本地PC时间之间的差异)。

一旦你有了这个偏移量,你就可以随时获得本地PC时间 - 通过新的Date() - 并计算偏移量以获得'正确'的服务器时间,而不必每次都调用服务器。 / p>