在 JavaScript 中查找经过的时间
有时,需要在 JavaScript 中执行某些操作时查找经过的总时间。例如,我们需要查找已更新其个人资料的用户所经过的总时间。
此外,可能还有其他类似的用例,我们需要查找特定时间和当前时间之间的差异,以查找经过的总时间。在这里,我们将学习在 JavaScript 中查找经过时间的各种方法。
使用 Date() 对象在 JavaScript 中查找经过的时间
在 JavaScript 中,我们可以使用 Date() 对象构造函数获取当前时间。它返回自 1970 年 1 月 1 日以来的总毫秒数。
在这里,我们可以获取两个日期的总毫秒数之差,以获取两个日期之间经过的时间。
语法
用户可以按照以下语法使用 Date() 对象构造函数在 JavaScript 中查找经过的时间。
let startTime = new Date(); let endTime = new Date(); let timeElapsed = endTime - startTime;
在上述语法中,首先我们获取了开始时间。之后,我们获取了结束时间。为了获取经过的时间,我们获取了开始时间和结束时间之间的差值。
示例 1
在下面的示例中,我们将当前时间存储在 startTime 变量中。之后,我们调用 loopThrough() 函数。该函数执行循环 600,000 次。
函数执行完成后,我们将当前时间存储在 endTime 变量中。之后,我们获取 endTime 和 startTime 之间的差值,以获取执行函数期间经过的总时间。
<html> <body> <h3> Using the <i> Date() object </i> to find the time elapsed in JavaScript </h3> <div id="output"> </div> <script> let output = document.getElementById('output'); function loopThrough() { for (i = 0; i < 600000; i++) { //Do nothing } } let startTime = new Date(); loopThrough(); let endTime = new Date(); let timeElapsed = endTime - startTime; output.innerHTML += "Total time elapsed to loop through 600000 times: " + timeElapsed + " milliseconds."; </script> </body> </html>
示例 2
下面的示例显示了特定日期与当前时间之间的时差。之后,我们调用 formatDate() 函数以将日期格式化为天、小时、分钟和秒格式。
在 formatDate() 函数中,我们获取时差作为参数以及天、小时、分钟和秒的总数。在输出中,用户可以检查自 2019 年 12 月 31 日起经过的总时间。
<html> <body> <h3> Using the <i> Date() object </i> to find the time elapsed in JavaScript </h3> <div id="output"></div> <script> let output = document.getElementById('output'); function formatDate(difference) { //Arrange the difference of date in days, hours, minutes, and seconds format let days = Math.floor(difference / (1000 * 60 * 60 * 24)); let hours = Math.floor((difference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); let minutes = Math.floor((difference % (1000 * 60 * 60)) / (1000 * 60)); let seconds = Math.floor((difference % (1000 * 60)) / 1000); output.innerHTML += "Total time elapsed is: " + days + " days " + hours + " hours " + minutes + " minutes " + seconds + " seconds."; } let start = new Date("December 31, 2020 23:59:59"); let end = new Date(); let difference = end - start; formatDate(difference); </script> </body> </html>
使用 Console.time() 函数
console.Time() 方法将标签作为参数。每当我们使用某个标签调用 console.time() 方法时,它就开始计算时间。
console.timeEnd() 方法采用与我们作为 console.time() 方法参数传递的相同的标签,并打印自调用 console.time() 方法以来的经过时间。
语法
用户可以按照以下语法使用 console.time() 函数在 JavaScript 中查找经过的总时间。
console.time(label); console.timeEnd(label);
在上述语法中,console.time() 和 console.timeEnd() 方法采用相同的标签。
示例 3
在下面的示例中,首先,我们在传递“执行时间”标签作为参数时执行 console.time() 方法。之后,我们调用循环 100,000 次。接下来,我们使用相同的标签调用 console.timeEnd() 方法,并在控制台中打印经过的总时间。
// use the console.time() function to find the time elapsed console.time('Execution time'); for (let i = 0; i < 100000; i++) { // Iterating through the loop } console.timeEnd('Execution time');
使用 Performance.now() 方法
用户可以使用 performance.now() 方法获取执行 JavaScript 代码期间经过的总时间。它以毫秒为单位返回经过的时间。
语法
用户可以按照以下语法使用 performance.now() 方法在 JavaScript 中查找经过的时间。
let startTime = performance.now(); let endTime = performance.now(); let timeElapsed = endTime - startTime;
我们在上述语法中获取了开始时间和结束时间之间的差值。
示例 4
在下面的示例中,我们在 JavaScript 代码执行开始时使用了 performance.now() 方法。之后,我们使用 setTime() 方法设置 1000 毫秒的超时。
超时完成后,它将执行回调函数,该函数将再次调用 performance.now() 方法并获取 startTime 和 endTime 之间的差值以查找经过的总时间。
<html>
<body>
<h3> Using the <i> performance.now() method </i> to find the time elapsed in JavaScript </h3>
<div id="output"></div>
<script>
let output = document.getElementById('output');
let startTime = performance.now();
setTimeout(function () {
let endTime = performance.now();
let timeElapsed = endTime - startTime;
output.innerHTML = 'Time elapsed: ' + timeElapsed + ' milliseconds';
}, 1000);
</script>
</body>
</html>
结论
用户学习了三种在 JavaScript 中查找经过时间的方法。第一种方法是使用 Date() 对象。第二种方法是使用 console.time() 和 console.timeEnd() 方法,该方法始终在控制台中打印时间。第三种方法是使用 performance.now() 方法。