在 JavaScript 中计算两个日期之间的天数

17 Mar 2025 | 6 分钟阅读

有时我们需要计算两个日期之间的天数。这可以使用 JavaScript 编程语言完成。JavaScript 提供了一个 数学函数 Math.floor() 方法 来计算两个日期之间的天数。在 JavaScript 中,我们必须使用日期对象进行任何计算,并使用 new Date() 定义日期。

要详细分步了解 JavaScript,请关注我们的 JavaScript 教程

我们将通过两种方式计算天数

  • 通过输入两个日期来计算天数
  • 从当前日期计算天数

我们将详细讨论这两种方法,并附带示例。此外,我们还将计算距离圣诞节还剩多少天(日期将从系统中获取)。

  • 计算距离当前日期还有多少天到圣诞节

方法 1:通过输入两个日期来计算天数

这种方法将帮助通过在代码中提供两个不同的日期来计算两个日期之间的天数。请按照以下步骤操作

  1. 在 JavaScript 中定义两个日期变量
  2. 使用 new Date() 创建日期对象并初始化它们
  3. 定义日期后,通过使用 date2.getTime() - date1.getTime(); 将一个日期减去另一个日期来计算它们之间的时间差
  4. 下一步是计算日期之间的天数。因此,我们将日期时间差除以一天中的毫秒数,即 1000*60*60*24
  5. 最后,使用 document.write() 方法打印计算结果。

现在,我们将这些步骤转换为实际实现。请看下面的代码

复制代码

输出

Number of days between dates 
Mon Jul 20 2015 00:00:00 GMT+0530 (India Standard Time) and 
Tue Sep 20 2016 00:00:00 GMT+0530 (India Standard Time) are: 
502 days

截图

Calculate of days between two dates in JavaScript

使用动态 HTML 表单计算天数

这是一个动态的 JavaScript 示例,用户可以在 Web 上自行提供输入,而不是由程序员在代码中提供日期输入。用户将从日历中动态选择日期,并在输入字段中输入两个日期,然后通过单击按钮计算两个日期之间的天数。请看下面的代码

复制代码

输出

看下面的截图,其中有两个日历输入字段,一个用于执行所有计算的提交按钮,以及另一个用于显示计算结果的字段。

Calculate of days between two dates in JavaScript

方法 2:从当前日期计算天数

在此方法中,我们将使用数学函数 Math.floor() 来计算天数。请按照以下步骤操作

  1. 定义两个日期变量,即 date1 和 date2
  2. 使用 new Date() 创建日期对象并初始化 date1 变量,它将默认获取系统日期。
  3. 使用 new Date() 创建日期对象并初始化 date2 变量,并在其中提供一个日期。
  4. 现在使用 Math.abs() 方法计算两个日期之间的总秒数。因此,将日期差除以一秒中的毫秒数 Math.abs(date2-date1) / 1000;
  5. 下一步是使用 Math.floor() 方法计算天数。因此,将上一步计算的结果(两个日期之间的总秒数)除以 60*60*24
  6. 最后,使用 document.write() 方法打印计算结果。

现在,我们将这些步骤转换为实际实现。请看下面的代码

复制代码

输出

Number of days between dates 
Sun Sep 27 2020 19:42:13 GMT+0530 (India Standard Time) and 
Tue Dec 15 2021 21:45:10 GMT+0530 (India Standard Time) are: 
444 days 

截图

Calculate of days between two dates in JavaScript

示例 3:计算距离圣诞节还有多少天到当前日期

我们还有另一个示例,我们将计算到圣诞节的天数,即特定日期。请按照以下步骤操作

  1. 使用 new Date() 创建日期对象来定义当前日期(系统日期)。
  2. 使用 new Date() 类方法定义另一个日期,并在其中通过 date.getFullYear() 方法获取圣诞节日期。date.getFullYear() 方法将在其中返回年份(JavaScript 中为 0-11 月)。
  3. 如果今年的圣诞节已经过去,它将返回从当前日期到明年圣诞节的天数。
  4. 现在,是时候使用 Math.round() 函数来计算毫秒结果,然后将此结果转换为天数。因此,将 Math.round(Christmas() - present_date.getTime()) 除以一天中的总毫秒数,即 1000*60*60*24。
  5. 删除结果中的小数部分,并使用 document.write() 方法将其显示在网页上。

现在,将这些步骤转换为实际实现以计算剩余到圣诞节的天数。实现和步骤一样简单。请看下面的代码

复制代码

输出

Number of days remaining in Christmas day: 
Mon Sep 28 2020 14:32:50 GMT+0530 (India Standard Time) and 
Fri Dec 25 2021 00:00:00 GMT+0530 (India Standard Time) are: 
87 days

截图

Calculate of days between two dates in JavaScript

因此,这里是 JavaScript 中用于计算日期差异的所有必要示例(包括静态和动态)。要详细分步了解 JavaScript,请关注我们的 JavaScript 教程。