Как настроить таймер отсчета времени на javascript чч:мм:сс?

Есть скрипт отчета времени, после окончания стартует заново.

Проблема в отображении самого времени. Нужно сделать чтобы было чч:мм:сс 01:04:09 вместо 1:4:9.
В скриптах не разбираюсь, и если кто скинет кусок готового кода, буду очень благодарен!

<script>
		var outTimer = document.getElementById('timer'), 
			secEnd = 1 * 3600, // секунд до 1:00
			serDay = 24 * 3600; // секунд в сутках
			
		setInterval(function () {
		  
		  var curDate = new Date(),
			  curSec = curDate.getHours() * 3600 + curDate.getMinutes() * 60 + curDate.getSeconds() * 01, // прошло секунд в этих сутках
			  diff = secEnd - curSec;

		  if (diff < 0) { // если сейчас больше 1:00 
			diff = serDay + diff; // разница с сек. в сутках
		  }

 		  outTimer.innerHTML = '' + Math.floor(diff / 3600) + ':' +  Math.floor(diff / 60) % 60 + ':' +  Math.floor(diff) % 60  + '';  
		}, 1000);
	</script>
  • Вопрос задан
  • 6660 просмотров
Решения вопроса 1
GeneMoss
@GeneMoss
void
Слегка поправил Ваш код: jsfiddle.net/Em3A6/
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
itspers
@itspers
очевидное решение, не зависимое от скриптов и языков:
if (переменная < 10) {
   переменная = '0' + переменная
}
Ответ написан
hell0w0rd
@hell0w0rd
Просто разработчик
Какой-то у вас не красивый таймер
function timer (seconds, renderCallback, endCallback) {
    if (typeof renderCallback !== 'function') {
        throw new Error('renderCallback should be function');
    }
    if (typeof renderCallback === 'function') {
        setTimeout(endCallback, seconds * 1000);
    }
    for (var i = 0; i < seconds; i++) {
        setTimeout(function() {
            renderCallback(new Date());
        }, i * 1000);
    }
}
var setTimer = function (secons) {
    timer(5, function (date) {
        console.log(date.toString());
    }, setTimer);
};
setTimer(5);

А вот это hours = '0'+hours; не работает потому что 0 приводится к int и складывается с hours. Чтобы сделать то, что вы хотите вам нужно писать так:hours = '0'+hours.toString();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы