Я создаю часы обратного отсчета в JavaScript, и у меня возникают проблемы с форматированием именно так, как я хочу. По сути, у меня есть переменная с именем totalTime, которая изначально установлена на общее количество секунд, в течение которых будет выполняться обратный отсчет. Каждую секунду это число уменьшается на 1, и я конвертирую его в минуты и секунды для отображения на странице.
Что меня сбивает с толку, так это то, что я хочу включить 0 в число оставшихся минут, но только если начальное значение totalTime равно 600 (10:00) или больше. Итак, если я установлю totalTime на 600, я хочу, чтобы обратный отсчет отображал 10:00, 09:59, 09:58 и т. д. (обратите внимание на начальный 0); но если я установлю totalTime на 300, я хочу, чтобы обратный отсчет отображал 5:00, 4:59, 4:58 и т. д.
Иными словами, начальный 0 должен отображаться в зависимости от количества времени, с которого начинается обратный отсчет (начальное значение totalTime), а не сколько времени осталось на данный момент (текущее значение totalTime). Как бы я это сделал?
РЕДАКТИРОВАТЬ: вот код, который у меня есть сейчас: http://jsfiddle.net/JFYaq/
// Get the countdown element
var countdown = document.getElementById("countdown");
// Set the total time in seconds
var totalTime = 600;
// Every second...
var interval = setInterval(function(){
// Update the time remaining
updateTime();
// If time runs out, stop the countdown
if(totalTime == -1){
clearInterval(interval);
return;
}
}, 1000);
// Display the countdown
function displayTime(){
// Determine the number of minutes and seconds remaining
var minutes = Math.floor(totalTime / 60);
var seconds = totalTime % 60;
// Add a leading 0 to the number of seconds remaining if it's less than 10
if (seconds < 10){
seconds = "0" + seconds;
}
// Split the number of minutes into two strings
var minutesString = minutes + "";
var minutesChunks = minutesString.split("");
// Split the number of seconds into two strings
var secondsString = seconds + "";
var secondsChunks = secondsString.split("");
// If the total time is 10 minutes or greater...
if (totalTime >= 600){
// Add a leading 0 to the number of minutes remaining if it's less than 10
if (minutes < 10){
minutes = "0" + minutes;
}
// Display the time remaining
countdown.innerHTML = "<span>" + minutesChunks[0] + "</span>" + "<span>" + minutesChunks[1] + "</span>" + ":" + "<span>" + secondsChunks[0] + "</span>" + "<span>" + secondsChunks[1] + "</span>";
}
// If the total time is less than 10 minutes...
else {
// Display the time remaining without a leading 0 on the number of minutes
countdown.innerHTML = "<span>" + minutes + "</span>" + ":" + "<span>" + secondsChunks[0] + "</span>" + "<span>" + secondsChunks[1] + "</span>"
}
}
// Update the time remaining
function updateTime(){
displayTime();
totalTime--;
}
// Start the countdown immediately on the initial pageload
updateTime();