时分秒计时器是一种常见的应用,用于实时显示经过的时间。在JavaScript中,你可以使用Date
对象和setInterval
函数来实现这个功能。
Date
对象用于处理日期和时间。setInterval
每隔一秒更新时间。// 获取页面上的元素,用于显示时间
const timerElement = document.getElementById('timer');
// 初始化时间
let startTime = new Date();
// 更新时间的函数
function updateTime() {
const currentTime = new Date();
const elapsedTime = currentTime - startTime;
// 计算时分秒
const hours = Math.floor(elapsedTime / (1000 * 60 * 60));
const minutes = Math.floor((elapsedTime % (1000 * 60 * 60)) / (1000 * 60));
const seconds = Math.floor((elapsedTime % (1000 * 60)) / 1000);
// 格式化时间并显示
timerElement.textContent = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
}
// 每秒更新一次时间
setInterval(updateTime, 1000);
// 初始调用以立即显示时间
updateTime();
setInterval
并不总是精确的,可能会因为浏览器性能问题导致延迟。requestAnimationFrame
代替setInterval
,它在每次浏览器重绘时调用,通常更精确。localStorage
)保存开始时间,页面加载时读取并计算经过的时间。let startTime = new Date();
let requestId;
function updateTime() {
const currentTime = new Date();
const elapsedTime = currentTime - startTime;
const hours = Math.floor(elapsedTime / (1000 * 60 * 60));
const minutes = Math.floor((elapsedTime % (1000 * 60 * 60)) / (1000 * 60));
const seconds = Math.floor((elapsedTime % (1000 * 60)) / 1000);
timerElement.textContent = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
requestId = requestAnimationFrame(updateTime);
}
requestId = requestAnimationFrame(updateTime);
通过这种方式,你可以创建一个更稳定和准确的时分秒计时器。
领取专属 10元无门槛券
手把手带您无忧上云