当前位置:首页 > JavaScript

js实现计时功能

2026-03-01 04:49:02JavaScript

使用 setInterval 实现计时器

通过 setInterval 可以定期执行回调函数,适合实现计时功能。以下是一个简单的倒计时示例:

let seconds = 60;
const timer = setInterval(() => {
  console.log(`剩余时间: ${seconds}秒`);
  seconds--;
  if (seconds < 0) {
    clearInterval(timer);
    console.log("计时结束");
  }
}, 1000);

使用 setTimeout 递归实现计时器

setTimeout 递归调用可以避免 setInterval 的潜在误差问题,适合高精度计时:

let seconds = 60;
function countdown() {
  console.log(`剩余时间: ${seconds}秒`);
  seconds--;
  if (seconds >= 0) {
    setTimeout(countdown, 1000);
  } else {
    console.log("计时结束");
  }
}
countdown();

使用 Date 对象计算时间差

通过记录开始时间和当前时间差,可以精确计算耗时:

const startTime = new Date().getTime();
function updateElapsedTime() {
  const currentTime = new Date().getTime();
  const elapsed = Math.floor((currentTime - startTime) / 1000);
  console.log(`已耗时: ${elapsed}秒`);
  setTimeout(updateElapsedTime, 1000);
}
updateElapsedTime();

性能优化的 requestAnimationFrame

对于需要高频率更新的计时场景(如动画),可以使用 requestAnimationFrame

let startTime = performance.now();
function updateFrame(timestamp) {
  const elapsed = (timestamp - startTime) / 1000;
  console.log(`精确耗时: ${elapsed.toFixed(2)}秒`);
  requestAnimationFrame(updateFrame);
}
requestAnimationFrame(updateFrame);

暂停与恢复计时功能

通过记录暂停时的剩余时间,可以实现计时器的暂停与恢复:

let remaining = 60;
let timer;
function startTimer() {
  timer = setInterval(() => {
    console.log(`剩余: ${remaining}秒`);
    remaining--;
    if (remaining < 0) clearInterval(timer);
  }, 1000);
}
function pauseTimer() {
  clearInterval(timer);
}
startTimer();
// 调用 pauseTimer() 可暂停

格式化时间显示

将秒数转换为 HH:MM:SS 格式:

js实现计时功能

function formatTime(seconds) {
  const h = Math.floor(seconds / 3600).toString().padStart(2, '0');
  const m = Math.floor((seconds % 3600) / 60).toString().padStart(2, '0');
  const s = Math.floor(seconds % 60).toString().padStart(2, '0');
  return `${h}:${m}:${s}`;
}
console.log(formatTime(3661)); // 输出 "01:01:01"

标签: 功能js
分享给朋友:

相关文章

css3结合js制作

css3结合js制作

CSS3 结合 JavaScript 制作动态效果 CSS3 和 JavaScript 结合可以实现丰富的动态效果,包括动画、交互和响应式设计。以下是几种常见的实现方式: CSS3 动画与 Java…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现轮播代码

js实现轮播代码

基础轮播实现 使用HTML、CSS和JavaScript创建一个简单的轮播效果。HTML部分定义轮播容器和图片元素。 <div class="carousel"> <div c…

js实现原理

js实现原理

JavaScript 实现原理 JavaScript 是一种解释型语言,其实现原理涉及多个核心组件和运行机制,包括引擎、运行时环境、事件循环等。 引擎与解释执行 现代 JavaScript 引擎(如…

vue 分页功能实现

vue 分页功能实现

分页功能实现方法 使用 Element UI 的分页组件 Element UI 提供了现成的分页组件 el-pagination,可以快速实现分页功能。 安装 Element UI: npm in…

js实现导航菜单

js实现导航菜单

使用HTML和CSS创建基础结构 导航菜单的基础结构通常由HTML的无序列表(<ul>)和列表项(<li>)组成,每个列表项包含一个链接(<a>)。CSS用于样式化…