JavaScript 查找经过的时间

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()方法,并将“执行时间”标签作为参数传递。然后,我们调用一个循环1,00,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()方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程