@johnpaul.blick
Есть несколько способов создания счетчика времени на JavaScript. Наиболее распространенный способ - это использование setInterval() функции.
Пример кода:
HTML:
1
|
00:00:00 |
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
var timer = document.getElementById('timer'); var hour = 0; var minute = 0; var second = 0; var interval; function startTimer() { interval = setInterval(function() { second++; if (second == 60) { minute++; second = 0; } if (minute == 60) { hour++; minute = 0; } timer.innerHTML = (hour ? (hour > 9 ? hour : "0" + hour) : "00") + ":" + (minute ? (minute > 9 ? minute : "0" + minute) : "00") + ":" + (second > 9 ? second : "0" + second); }, 1000); } function pauseTimer() { clearInterval(interval); } function resetTimer() { clearInterval(interval); hour = 0; minute = 0; second = 0; timer.innerHTML = "00:00:00"; } |
Аналогично нижеследующему скрипту можно поставить на паузу счётчик времени
1 2 3 4 5 6 7 8 9 10 11 12 13 |
var startTime = Date.now(); setInterval(function() { var elapsedTime = Date.now() - startTime; var seconds = Math.floor(elapsedTime / 1000) % 60; var minutes = Math.floor(elapsedTime / 60000) % 60; var hours = Math.floor(elapsedTime / 3600000) % 24; var displayHours = hours < 10 ? '0' + hours : hours; var displayMinutes = minutes < 10 ? '0' + minutes : minutes; var displaySeconds = seconds < 10 ? '0' + seconds : seconds; document.getElementById('timer').textContent = displayHours + ':' + displayMinutes + ':' + displaySeconds; }, 1000); |
@johnpaul.blick
Есть и другие способы создания счетчика времени на JavaScript, которые могут быть более гибкими в реализации определенной логики или дизайна счетчика. Вот пример функции счетчика времени, где можно устанавливать начальное время, паузу, продолжить счет и сброс времени:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
<!DOCTYPE html>
<html>
<head>
<title>Таймер</title>
</head>
<body>
<div id="timer">00:00:00</div>
<button onclick="startTimer()">Start</button>
<button onclick="pauseTimer()">Pause</button>
<button onclick="resumeTimer()">Resume</button>
<button onclick="resetTimer()">Reset</button>
<script>
var timerElement = document.getElementById('timer');
var startTime;
var elapsedTime = 0;
var timerInterval;
var isPaused = false;
function startTimer() {
startTime = Date.now() - elapsedTime;
timerInterval = setInterval(updateTimer, 1000);
isPaused = false;
}
function pauseTimer() {
clearInterval(timerInterval);
elapsedTime = Date.now() - startTime;
isPaused = true;
}
function resumeTimer() {
if (isPaused) {
startTimer();
}
}
function resetTimer() {
clearInterval(timerInterval);
elapsedTime = 0;
updateTimer();
isPaused = false;
}
function updateTimer() {
var currentTime = Date.now();
elapsedTime = currentTime - startTime;
var hours = Math.floor(elapsedTime / 3600000);
var minutes = Math.floor((elapsedTime % 3600000) / 60000);
var seconds = Math.floor((elapsedTime % 60000) / 1000);
timerElement.textContent = formatTime(hours) + ':' + formatTime(minutes) + ':' + formatTime(seconds);
}
function formatTime(time) {
return time < 10 ? '0' + time : time;
}
</script>
</body>
</html>
|
Этот код позволяет вам запускать, останавливать, продолжать счет и сбрасывать время таймера с помощью соответствующих кнопок.