Javascript倒计时计时器倒计时未正确更新秒/分钟

Javascript倒计时计时器倒计时未正确更新秒/分钟,javascript,countdowntimer,Javascript,Countdowntimer,我已经创建了一个倒计时计时器。然而,它并没有正确地倒计时。它不是每秒或每分钟倒计时,而是按百分之一百倒计时,并且不能正确更新。我用同样的代码创建了另一个计数计时器,但它可以正确地计算每一个增量的计数时间——它每过60秒就计算分钟数。我想知道我怎样才能使这个计时器正确地倒计时 JSBin: 更新*在60秒计数器中添加: HTML 用户输入定时器 00:00:00 开始 停止 重置 JAVASCIPT hundreths = 10; seconds = 15; minutes = 20;

我已经创建了一个倒计时计时器。然而,它并没有正确地倒计时。它不是每秒或每分钟倒计时,而是按百分之一百倒计时,并且不能正确更新。我用同样的代码创建了另一个计数计时器,但它可以正确地计算每一个增量的计数时间——它每过60秒就计算分钟数。我想知道我怎样才能使这个计时器正确地倒计时

JSBin:

更新*在60秒计数器中添加:

HTML


用户输入定时器
00:00:00
开始
停止
重置
JAVASCIPT

hundreths = 10;
seconds = 15;
minutes = 20; 


document.getElementById("time").innerHTML = minutes + ":" + seconds + ":" + hundreths;


var currentTime = document.getElementById('time');

var t;

function startClock() {
function add() {

    hundreths--;
    if (hundreths < 0) {
        hundreths = 0;
        seconds--;
        if (seconds < 0) {
            seconds = 0;
            minutes--;
        }
        if(minutes < 0) {
            seconds= 0;
            minutes= 0;
            stopTimer();

        }
    }



if (hundreths > 9 && seconds < 9) {
currentTime.innerHTML = "0" + minutes + ":" + "0" + seconds + ":" + hundreths;
  }
else if ((seconds > 9 ) && (hundreths < 9)) {
currentTime.innerHTML = "0" + minutes + ":" + seconds + ":" + "0" + hundreths;
}
else if((seconds > 9) && (hundreths > 9)) {
currentTime.innerHTML = "0" + minutes + ":" + seconds + ":" + hundreths;
}
else if ((minutes > 9) && (seconds < 9) && (hundreths < 9)) {
currentTime.innerHTML = minutes + ":" + "0" + seconds + ":" + "0" + hundreths;
}

else if ((minutes > 9) && (seconds > 9) && (hundreths < 9)) {
currentTime.innerHTML = minutes + ":" + seconds + ":" + "0" + hundreths;
}

else if ((minutes > 9) && (seconds > 9) && (hundreths < 9)) {
currentTime.innerHTML = minutes + ":" + seconds + ":" + hundreths;
}

else {
currentTime.innerHTML = "0" + minutes + ":" + "0" + seconds + ":" + "0" + hundreths;
}

   timer();
} // end function add();


function timer() {
    t = setTimeout(add, 100);
}
timer();
} // end function startClock();

function stopTimer() {
    document.getElementById("result").innerHTML = "<p>" + ("Your time is: " + minutes + " minutes, " + seconds + " seconds, " + "and " + hundreths + " hundreths") + "</p>";
    clearTimeout(t);
} // end function stopTimer();


function resetTimer() {
clearTimeout(t);

  currentTime.innerHTML = "00:00:00";
} // end function resetTimer();
百分之十=10;
秒=15;
分钟=20;
document.getElementById(“time”).innerHTML=minutes+”:“+seconds+”:“+hundreth;
var currentTime=document.getElementById('time');
变量t;
函数startClock(){
函数add(){
百分之一百--;
如果(百分之一百<0){
百分之一百=0;
秒--;
如果(秒<0){
秒=0;
分钟--;
}
如果(分钟<0){
秒=0;
分钟=0;
停止计时器();
}
}
如果(百分之九>9&&秒<9){
currentTime.innerHTML=“0”+分钟+”:“+“0”+秒+”:“+百分之一百;
}
否则如果((秒>9)和(&(百分之九<9)){
currentTime.innerHTML=“0”+分钟+”:“+秒+”:“+”0“+百分之一百;
}
否则如果((秒>9)和(&(百分之九>9)){
currentTime.innerHTML=“0”+分钟+:“+秒+”:“+百分之一百;
}
否则如果((分钟>9)和(&(秒<9)和(&(百分之九<9)){
currentTime.innerHTML=分钟+“:“+”0“+秒+”:“+”0“+百分之一百;
}
否则如果((分钟>9)和(&(秒>9)和(&(百分之九<9)){
currentTime.innerHTML=分钟+“:“+秒+”:“+“0”+百分之一百;
}
否则如果((分钟>9)和(&(秒>9)和(&(百分之九<9)){
currentTime.innerHTML=分钟+“:”+秒+“:”+百分之一百;
}
否则{
currentTime.innerHTML=“0”+分钟+”:“+”0“+秒+”:“+”0“+百分之一百;
}
定时器();
}//结束函数add();
函数计时器(){
t=设置超时(加上100);
}
定时器();
}//结束函数startClock();
函数stopTimer(){
document.getElementById(“结果”).innerHTML=“”+(“您的时间是:“+minutes+”分钟、+seconds+”秒、“+”和“+hundreths+”百分之几”)+”

”; 清除超时(t); }//结束函数stopTimer(); 函数resetTimer(){ 清除超时(t); currentTime.innerHTML=“00:00:00”; }//结束函数resetTimer();
只需使用Jquery倒计时插件即可

实施将更容易。像这样的

<div id="getting-started"></div>
<script type="text/javascript">
  $("#getting-started").countdown("2016/01/01", function(event) {
    $(this).text(event.strftime('%D days %H:%M:%S'));
  });
</script>

$(“#入门”)。倒计时(“2016/01/01”,功能(事件){
$(this).text(event.strftime(“%D天%H:%M:%S”);
});

这将起作用,因为您有关于何时设置秒的逻辑,所以它会不断地自行重置。在这种情况下,如果您陷入困境,最好的方法之一就是尝试更改if语句,删除其中的一些语句并使用不同的值。它可以帮助您了解系统中真正发生的事情,并为您提供错误的线索。另一个技巧是用普通英语大声朗读代码。当你大声朗读时,你经常会听到自己说出逻辑,从而意识到自己犯了错误

    hundreths--;
    if (hundreths < 0) {
        hundreths = 10;
        seconds--;
        if (seconds < 0) {
            seconds = 59;
            minutes--;
        }
        if(minutes < 0) {
            seconds= 0;
            minutes= 0;
            stopTimer();

        }
    }
百分之一百--; 如果(百分之一百<0){ 百分之十=10; 秒--; 如果(秒<0){ 秒=59; 分钟--; } 如果(分钟<0){ 秒=0; 分钟=0; 停止计时器(); } }
谢谢!!这些都是非常有用的提示
    hundreths--;
    if (hundreths < 0) {
        hundreths = 10;
        seconds--;
        if (seconds < 0) {
            seconds = 59;
            minutes--;
        }
        if(minutes < 0) {
            seconds= 0;
            minutes= 0;
            stopTimer();

        }
    }