如何获取可读的两位毫秒数?现有倒计时时分秒代码求扩展
实现两位格式的毫秒数倒计时
没问题,我来帮你把现有的倒计时代码扩展成支持两位格式的毫秒数!
首先,你现有的代码已经基于毫秒级的差值distance计算出了天、时、分、秒,要得到两位格式的毫秒数,只需要两步:
- 第一步:提取出毫秒部分的数值
- 第二步:把数值格式化为两位,不足两位的前面补0
修改后的完整代码
var countDownDate = new Date("Jan 5, 2024 15:37:25").getTime(); // 示例目标时间,可替换成你的目标时间 var now = new Date().getTime(); var distance = countDownDate - now; // 总毫秒差 // 原有时间计算逻辑 var days = Math.floor(distance / (1000 * 60 * 60 * 24)); var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); var seconds = Math.floor((distance % (1000 * 60)) / 1000); // 新增两位格式的毫秒数计算 var rawMilliseconds = distance % 1000; // 得到0-999的原始毫秒数 var milliseconds = rawMilliseconds.toString().padStart(2, '0').slice(-2); // 如果你想要每10毫秒更新一次的两位毫秒(00-99),可以用下面这行替代上面的milliseconds: // var milliseconds = Math.floor(rawMilliseconds / 10).toString().padStart(2, '0');
代码细节解释
rawMilliseconds = distance % 1000:从总毫秒差里截取最后三位,得到0到999的原始毫秒数值padStart(2, '0'):把数字转成字符串后,若长度不足2则在前面补0(比如5毫秒会变成"05",99毫秒保持"99").slice(-2):确保只保留最后两位,比如123毫秒会变成"23",始终维持两位格式- 注释里的
Math.floor(rawMilliseconds / 10)是另一种常见需求:把毫秒数按10毫秒为单位取整,得到00-99的数值,适合需要视觉上更稳定的倒计时场景
最终使用示例
你可以把这些值拼接成想要的格式输出:
console.log(`${days}:${hours}:${minutes}:${seconds}:${milliseconds}`);
内容的提问来源于stack exchange,提问作者1myb
相关产品推荐
相关产品推荐

