Я строю часы обратного отсчета в JavaScript и у меня возникают проблемы с форматированием именно так, как я хочу. По сути, у меня есть переменная totalTime, которая изначально настроена на общее количество секунд, в течение которых будет выполняться обратный отсчет. Каждую секунду это число уменьшается на 1, и я преобразую его в минуты и секунды для отображения на странице.
Меня сбивает с толку то, что я хочу включить ведущий 0 в число оставшихся минут, но только если значение initial 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();