如何让固定时间走起来

当需要在页面上展示准确时间时,如果依赖用户电脑时间可能会不准确。为解决此问题,可以从服务器获取一个固定时间起点,然后使用JavaScript的setInterval更新时间,每秒更新一次,计算与固定时间的时间差并格式化显示,这样减少了对服务器接口的压力。
摘要由CSDN通过智能技术生成

业务中有时会遇到页面要展示当前时间的操作,如果直接new Date()获取的是当前电脑的时间,如果用户当前电脑时间不准确,我们获取到的时间也不准确,这时候就要从服务器获取时间,如果每隔一秒钟去调一次接口就会增加服务器的压力,这时候就要前端自己去让时间走起来。
假设你已经获取到一个固定时间,可以通过 setInterval 函数来实现让时间走起来:

// 假设固定时间是 2023年5月1日14时30分0秒
const fixedTime = new Date('2023-05-01T14:30:00');

// 每秒执行一次 update 函数,更新时间
setInterval(update, 1000);

function update() {
  // 获取当前时间
  const now = new Date();

  // 计算与固定时间的时间差(单位为毫秒)
  const diff = now - fixedTime;

  // 将时间差转换为秒数
  const seconds = Math.floor(diff / 1000);

  // 计算当前时间是多少秒之后
  const newTime = new Date(fixedTime.getTime() + seconds * 1000);

  // 格式化时间,例如:14:30:15
  const timeString = newTime.toLocaleTimeString([], { hour12: false });

  // 更新页面上显示的时间
  document.getElementById('clock').textContent = timeString;
}

在上面的示例中,我们每秒执行一次 update 函数,计算当前时间与固定时间的时间差,并将时间差转换为秒数,然后将固定时间加上这个秒数,得到当前时间,最后将当前时间格式化成字符串,并更新页面上的时钟。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值