【问题标题】:Countdown timer javascript倒数计时器javascript
【发布时间】:2015-07-30 18:32:00
【问题描述】:

我如何制作对每个人都一样的倒数计时器,无论他们在电脑上的时间是多少。 该脚本无法按我的意愿运行,基本上任何人都可以通过更改其电脑上的日期和时间来更改计时器。

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);

【问题讨论】:

  • 基本上你不需要使用他们电脑时间/日期的时间基准。您将使用托管代码的服务器时间/日期。
  • 为什么不直接在函数外设置变量“now”,并在每个showRemaining() 中添加 1000 秒?这样,您的用户将不得不在脚本开始之前更改日期。

标签: javascript timer


【解决方案1】:

由于本地 PC 时间不在您的控制范围内,您必须至少从您的服务器(或第三方服务器)获取可靠时间。

一旦您知道(正确的)服务器时间是多少,您可以从本地 PC 时间中减去服务器时间以获得“偏移量”(即服务器时间和本地 PC 时间之间的差异)。

一旦你有了这个偏移量,你就可以随时获取本地 PC 时间 - 通过 new Date() - 并考虑偏移量以获得“正确”的服务器时间,而不必每次都调用服务器。

【讨论】:

  • 不错的曼波舞,很好的解释。我只是在打字,你已经回答了:)
猜你喜欢
  • 2011-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多