倒数计时不能设置为超过两天

时间:2019-01-12 17:50:51

标签: javascript timer countdown

我在互联网上找到了一个用于倒数计时器的javascript代码,并对其进行了一些更改以根据需要使用它。基本上可以正常工作,但是只要我将开始日期设置为提前2天以上它不符合预期。如果我将其设置为提前三天,如下面的代码所示,它不是倒计时72小时,而是倒数12小时。

我不确定是什么问题,因为我可以设置24或48小时倒计时,而不会出现任何问题。

(function() {
 var start = new Date;
 start.setHours(18, 02, 20); 

function pad(num) {
  return ("0" + parseInt(num)).substr(-2);
}

 function tick() {
  var now = new Date;
var weekend = now.getDay();

if (now > start) { 
start.setDate(start.getDate() + 3);
  }

var remain = ((start - now) / 1000);
var hh = pad((remain / 60 / 60) % 60);
var mm = pad((remain / 60) % 60);
var ss = pad(remain % 60);
var distance = start - now;

document.getElementById('demo').innerHTML = hh + ":" + mm + ":" + ss

setTimeout(tick, 1000);
}
document.addEventListener('DOMContentLoaded', tick);
})();

1 个答案:

答案 0 :(得分:0)

以下是原因:

var hh = pad((remain / 60 / 60) % 60);

由于% 60(mod 60),因此将小时数限制为60。 48小时少于60小时,因此可以正常工作。 72小时将转换为12(72%60 == 12)。