倒计时不能设置为提前两天以上
Countdown can't be set to more than two days ahead
我在互联网上找到了倒数计时器的 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);
})();
下面一行是原因:
var hh = pad((remain / 60 / 60) % 60);
由于 % 60
(mod 60),这将小时数限制为 60。 48 小时小于 60,所以它有效。 72 小时将转换为 12 (72 % 60 == 12)。
我在互联网上找到了倒数计时器的 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);
})();
下面一行是原因:
var hh = pad((remain / 60 / 60) % 60);
由于 % 60
(mod 60),这将小时数限制为 60。 48 小时小于 60,所以它有效。 72 小时将转换为 12 (72 % 60 == 12)。