如何使用javascript获得时间差异?

use*_*482 0 javascript timestamp

我试图timeNow在javascript和脚本结束时获取当前时间获取 timeEnd脚本完成执行的时间,例如:

newDate = new Date();
timeNow = newDate.getTime();

for(i=0; i < 5; i ++){

    console.log("printing" + i);
}

timeEnd = timeNow - newDate.getTime();

console.log(timeEnd);
Run Code Online (Sandbox Code Playgroud)

我希望得到在几秒或几毫秒内执行此脚本所花费的时间,但结果为0.我不明白为什么,你能帮我谢谢.

Aln*_*tak 5

Date一旦它构造的对象不保留滴答作响,它仅代表单个时间瞬间.

您需要重新评估脚本末尾的时间,然后将该值与第一个值进行比较.

请注意,在现代ES5浏览器上,您可以使用"静态" Date.now()功能来获取当前时间.这比构建一个全新的Date对象要便宜.在较旧的浏览器上,您可以使用此填充程序模拟此功能:

Date.now = Date.now || function() {
    return +(new Date);
};
Run Code Online (Sandbox Code Playgroud)

此时所需的代码变为:

var start = Date.now();

// do your stuff here
...

var end = Date.now();

var elapsed = end - start;
Run Code Online (Sandbox Code Playgroud)

FWIW,您的简单循环在笔记本电脑上的Chrome控制台上运行时会报告2ms.