如何在 JavaScript 中获取两个日期之间秒数?


在本教程中,我们将学习如何使用 JavaScript 获取两个日期之间的秒数。

有多种方法可以检查常用的天数、小时数和秒数,以提供与数据相关的信息。由于您无法手动更改年份和月份的数量,因此我们遵循一些简单的技巧来在 JavaScript 中获取数字。

使用 Date getTime() 方法

在 JavaScript 中,我们使用不同的方法来计算天数、小时数和秒数。计算时间最常用的方法是 .getTime()。但是,您将获得以毫秒为单位的结果,并且必须通过除法将其转换为秒。

语法

var x = new Date("Aug 12, 2022 19:45:25");
var y = new Date("Aug 14, 2022 19:45:25");
let seconds = Math.abs(x.getTime() - y.getTime())/1000;

这里 x 和 y 是两个日期。我们将使用 getTime() 获取两个日期的毫秒时间。我们取这两个日期的毫秒时间之间的绝对差值。然后,在减去毫秒时间后,我们将将其除以 1000。

算法

  • 步骤 1 - 使用 new Date() 创建两个日期。您可以参考示例了解日期的格式。
  • 步骤 2 - 使用 .getTime() 方法获取两个日期的毫秒时间。
  • 步骤 3 - 从最近的日期中减去旧的日期。然后,将输出除以 1000 以获得秒差。
  • 步骤 4 - 使用 innerHTML 方法检查两个日期之间的秒差

示例 1

我们已使用 new Date() 手动创建了这两个日期。您还可以使用不同的方法在 JavaScript 中生成日期。

<html> <body> <h4> Using <i> .getTime() method </i> to get number of seconds between to dates. </h4> <p id="date1"> </p> <p id="date2"> </p> <p id="seconds">Number of seconds between two dates: </p> <script> var t1 = new Date("Aug 12, 2022 19:45:25"); var t2 = new Date("Aug 14, 2022 19:45:25"); var dif = Math.abs(t1.getTime() - t2.getTime()) / 1000; document.getElementById('date1').innerHTML = "First date: " + t1; document.getElementById('date2').innerHTML = "Second date: " + t2; document.getElementById('seconds').innerHTML += dif + " seconds"; </script> </body> </html>

使用 Math.abs() 方法

Math.abs() 是用于将数字四舍五入到最接近的答案以避免获取浮点数的方法。因此,您也可以使用 Math.round() 方法代替 Math.abs()。您可以使用此方法以毫秒为单位获取时间差。通过将输出除以 1000 可以将时间转换为秒。

语法

我们将使用以下语法以毫秒为单位获取时间,并通过除法方法将其转换为秒

let x = new Date();
let y = new Date();
let dif = Math.abs(x - y) / 1000;

在这里,我们找到两个日期(x 和 y)之间的秒数。我们使用 Math.abs() 方法获取这两个日期之间的绝对差值。此差值以毫秒为单位,因此我们除以 1000 以将其转换为秒。

示例 2

在此示例中,两个日期之间相差超过 31 天。我们使日期保持相似,以便也可以手动以秒为单位检查输出。

<html> <head> <title> Example - get seconds between two dates </title> <head> <body> <h3> Get seconds between to dates using absolute difference of the dates </h3> <p id="date1"> </p> <p id="date2"> </p> <p id="seconds">Number of seconds between two dates: </p> <script> let date1 = new Date("Nov 25 2022 07:24:35"); let date2 = new Date(); var dif = Math.abs(date1 - date2) / 1000; document.getElementById('date1').innerHTML = "First date: " + date1; document.getElementById('date2').innerHTML = "Second date: " + date2; document.getElementById('seconds').innerHTML += dif; </script> </body> </html>

.getTime() 和 Math.abs() 等方法在 JavaScript 中很常用。您可以选择使用 Math.round() 方法来获取类似的输出。

请查看以下示例。

示例 3

<html> <head> <title> Example - get seconds between two dates </title> <head> <body> <h3> Get seconds between to dates using Matth.round() method </h3> <p id="date1"> </p> <p id="date2"> </p> <p id="seconds">Number of seconds between two dates: </p> <script> let date1 = new Date("Nov 25 2022 07:24:35"); let date2 = new Date(); var dif = Math.round(date1 - date2) / 1000; document.getElementById('date1').innerHTML = "First date: " + date1; document.getElementById('date2').innerHTML = "Second date: " + date2; document.getElementById('seconds').innerHTML += dif; </script> </body> </html>

在获取答案时,您应该确保时间已转换为秒,因为输出也可能以分钟或毫秒为单位。因此,您可以查看上面的示例以了解获取秒输出的最佳方法。

更新于: 2022-09-15

20K+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告