Countdown HH:MM:SS in Jquery

countdown, javascript, jquery

Solution

Well, let's take a look at what your code does:

- Set `count` to the string value `62`.

- Convert it to HHMMSS, so now `count` is equal to the string `00:01:02`

- Start the timer.

- On the first run of the timer, decrement `count`. Erm... `count` is a string, you can't decrement it. The result is not a number.

Okay, so with that out of the, way how about fixing it:

function formatTime(seconds) {
    var h = Math.floor(seconds / 3600),
        m = Math.floor(seconds / 60) % 60,
        s = seconds % 60;
    if (h < 10) h = "0" + h;
    if (m < 10) m = "0" + m;
    if (s < 10) s = "0" + s;
    return h + ":" + m + ":" + s;
}
var count = 62;
var counter = setInterval(timer, 1000);

function timer() {
    count--;
    if (count < 0) return clearInterval(counter);
    document.getElementById('timer').innerHTML = formatTime(count);
}

Problem

I want to countdown timer in format of `hh:mm:ss` so I use this code it's convert seconds into required format but when I count down it display me `NaN`. Can you tell me what I am doing wrong Here is code ``` <div id="timer"></div> ``` JS ``` String.prototype.toHHMMSS = function () { var sec_num = parseInt(this, 10); // don't forget the second parm var hours = Math.floor(sec_num / 3600); var minutes = Math.floor((sec_num - (hours * 3600)) / 60); var seconds = sec_num - (hours * 3600) - (minutes * 60); if (hours < 10) { hours = "0" + hours; } if (minutes < 10) { minutes = "0" + minutes; } if (seconds < 10) { seconds = "0" + seconds; } var time = hours + ':' + minutes + ':' + seconds; return time; } var count = '62'; count = count.toHHMMSS(); var counter = setInterval(timer, 1000); function timer() { count--; if (count <= 0) { clearInterval(counter); return; } $('#timer').html(count); } ``` Here is JsFiddle link CountDown Timer

Original source

Related problems