我在互联网上找到了一个用于倒数计时器的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);
})();
答案 0 :(得分:0)
以下是原因:
var hh = pad((remain / 60 / 60) % 60);
由于% 60
(mod 60),因此将小时数限制为60。 48小时少于60小时,因此可以正常工作。 72小时将转换为12(72%60 == 12)。