【发布时间】:2018-12-31 11:24:42
【问题描述】:
如何让我的计时器更动态地重置。我目前使用 new Date() 根据实时时间进行 12 小时倒计时。如果我想让计时器重置例如非常 2 小时,我需要更多的 if 和 else if 语句来做数学运算。
在不编写 20 个 if 语句的情况下循环此计时器的正确方法是什么? 目前,如果时间是 00:00 到 11:59,它将从 12 小时开始倒计时。一旦变成 12:01,我调用一个不同的等式,用 23 减去当前时间来确定新的倒计时时间。
如果我要进行每 4 或 2 小时而不是每 12 小时重置的倒计时,那么我需要创建更多 else if 语句,而我宁愿不这样做。
function timer() {
var currentTime = new Date()
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()
var seconds = currentTime.getSeconds()
if (hours < 12) {
var hoursLeft = 11 - hours;
var minsLeft = 60 - minutes;
var secsLeft = 60 - seconds;
if(minsLeft==60) {
minsLeft=0;
hoursLeft++;
}
if(secsLeft==60) {
secsLeft=0;
minsLeft++;
}
} else if (hours >= 12) {
var hoursLeft = 23 - hours;
var minsLeft = 60 - minutes;
var secsLeft = 60 - seconds;
if(minsLeft==60) {
minsLeft=0;
hoursLeft++;
}
if(secsLeft==60) {
secsLeft=0;
minsLeft++;
}
}
}
var countdownTimer = setInterval('timer()', 1000);
【问题讨论】:
标签: javascript time timer