基本上我想做的是让我的倒数计时器一旦达到“10”以下就加一个“0”。到目前为止,我已经尝试了一个if语句(在下面的代码中),它不起作用。这是我的完整代码:
CountDownTimer('01/1/2017 12:0 AM', 'countdown');
CountDownTimer('01/1/2017 12:0 AM', 'newcountdown');
function CountDownTimer(dt, id)
{
var end = new Date(dt);
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(id).innerHTML = 'EXPIRED!';
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);
// THIS IS THE "IF" STATEMENT THAT DID NOT WORK, EVERYTHING ELSE IS WORKING
if (seconds < 10) {
document.getElementById(id).innerHTML += '0' + seconds + '.';
}
document.getElementById(id).innerHTML = days + '. ';
document.getElementById(id).innerHTML += hours + '. ';
document.getElementById(id).innerHTML += minutes + '. ';
document.getElementById(id).innerHTML += seconds + '.';
}
timer = setInterval(showRemaining, 1000);
}
答案 0 :(得分:1)
这应该这样做:
// THIS IS THE "IF" STATEMENT....
if (seconds < 10) {
seconds = "0"+ seconds;
}
而不是构建输出用途:
document.getElementById(id).innerHTML = days + '. '+
hours + '. '+
minutes + '. '+
seconds + '.';
此外,您的到期时间应为<=0
,而不是<0
答案 1 :(得分:0)
从我看到的,你的If语句正常工作。但是,在您的If语句之后
document.getElementById(id).innerHTML = days + '. ';
这将覆盖您之前的声明,将innerHTML设置为days + '. '
。
尝试在If语句中设置秒数,以便最后一行使用更新的秒数。
答案 2 :(得分:0)
您的代码问题不在于if
,它正在运行:
if (seconds < 10) {
document.getElementById(id).innerHTML += '0' + seconds + '.';
}
但事实是,在此之后,你将覆盖之前的值:
document.getElementById(id).innerHTML += seconds + '.';
一个简单的解决方案是将seconds
转换为if
中的字符串:
if (seconds < 10) {
seconds = "0" + seconds;
}
这样,您可以在后续innerHTML
中使用该字符串。