当前位置:首页 > 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 的潜在误差问题,适合高精度计时:

js实现计时功能

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

js实现计时功能

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 格式:

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
分享给朋友:

相关文章

vue 实现收藏功能

vue 实现收藏功能

实现收藏功能的基本思路 在Vue中实现收藏功能通常涉及前端交互与后端数据存储的结合。核心逻辑包括:用户点击收藏按钮时切换状态,并通过API将状态同步到后端数据库。 前端组件实现 创建收藏按钮组件,使…

vue实现倍速播放功能

vue实现倍速播放功能

实现倍速播放功能的方法 在Vue中实现倍速播放功能通常涉及HTML5的<video>元素或第三方播放器库(如video.js)的API调用。以下是具体实现方式: 使用原生HTML5…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas…

vue 实现 功能

vue 实现 功能

Vue.js 是一个流行的前端框架,用于构建用户界面和单页应用程序。以下是一些常见的 Vue 功能实现方法: 数据绑定 Vue 的核心特性之一是数据绑定,可以通过 v-model 指令实现双向数据绑…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaS…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #34…