JS中两次调用Date.getSeconds()相减返回0问题咨询
问题根本原因
getSeconds()方法返回的是0~59的整数秒值,仅代表当前时间的整秒部分,两次new Date()调用的执行间隔极短(通常仅几毫秒),只要没有刚好跨过整秒的时间节点,start和end的整秒值就完全相等,差值自然为0。- 单独输出start、end时能看到不同值,是因为单独输出的操作(比如断点调试、分开打印时产生的人为/代码延迟)刚好让两次获取时间的操作跨过了整秒边界,才会出现数值差异,属于偶然情况。
修复方案
如果要统计短时间间隔,建议使用毫秒级时间戳计算,示例代码如下:
function returntime() { var start = Date.now(); // 此处放置需要统计执行时长的业务代码 var end = Date.now(); var totaltime = end - start; // 差值单位为毫秒 document.getElementById("Answer").innerHTML = totaltime; }
如果确实需要秒级统计结果,可将毫秒差除以1000后取整:var totaltime = Math.floor((end - start) / 1000);
内容的提问来源于stack exchange,提问作者Dev
相关产品推荐
相关产品推荐

