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


要获取 JavaScript 中两个日期之间的天数,我们将了解四种不同的方法,并逐步进行解释和示例代码。

在本文中,我们有两个不同的日期,我们的任务是在 JavaScript 中获取两个日期之间的天数。

获取两个日期之间天数的方法

以下是获取 JavaScript 中两个日期之间天数的方法列表,我们将在本文中逐步进行解释和完整的示例代码。

使用 Date 对象获取天数

为了获取两个日期之间的天数,我们使用了 日期 对象,它返回日、月、日期、年、时、分、秒和时区。

  • 我们初始化了两个日期对象,一个使用开始日期,另一个使用结束日期。
  • 使用 Date 对象的 getTime() 方法查找开始日期和结束日期之间以毫秒为单位的时间差,并将其存储在 diffTime 中。我们还使用了 Math.abs 获取非负值。
  • 我们将 diffTime 除以一天中的总毫秒数,并将其存储在 diffDays 中。
  • 我们使用了带有 id 为 resultdiv 元素,使用 getElementById() 方法在 HTML 文档本身中返回输出。

示例

这是一个完整的示例代码,实现了上述步骤,以使用 日期 对象在 JavaScript 中获取两个日期之间的天数。

<html>
<head>
    <title>
        To get the number of days between two dates
    </title>
</head>
<body>
    <div id="result"></div>
    <script>
        let result = document.getElementById('result');
        let date1 = new Date('2024-09-23');
        let date2 = new Date('2024-10-30');

        let diffTime = Math.abs(date2.getTime()-date1.getTime());
        let diffDays = diffTime/(1000*60*60*24);
        result.innerHTML = "Difference in days from " 
                            +date1.toDateString() +" to " 
                            +date2.toDateString() +" is: " +diffDays;
    </script>
</body>
</html>

使用 moment.js 库获取天数

在这种获取两个日期之间天数的方法中,我们使用了 MomentJS 库及其 diff 方法,该方法以天数返回天数之间的差异。

  • 我们使用了 CDN 链接,借助 script 标签在 head 部分中将 MomentJS 包含到我们的 HTML 文档中。
  • 我们初始化了两个日期,一个使用开始日期,另一个使用结束日期,使用 moment() 函数。
  • 我们使用了 moment.js 的 diff() 函数来获取从 date1 到 date2 的天数差。
  • 我们使用了带有 id 为 result 的 div 元素,使用 getElementById() 方法在 HTML 文档本身中返回输出。

示例

这是一个完整的示例代码,实现了上述步骤,以使用 moment.js 库在 JavaScript 中获取两个日期之间的天数。

<html>
<head>
    <title>
        To get the number of days between two dates
    </title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js"></script>
</head>
<body>
    <div id="result"></div>
    <script>
        let result = document.getElementById('result');
        let date1 = moment('2024-09-23');
        let date2 = moment('2024-10-30');

        let diffDays = date2.diff(date1, 'days');
        result.innerHTML = "Difference in days: " +diffDays;
    </script>
</body>
</html>

使用 UTC 时间戳获取天数

  • 我们初始化了两个日期对象,一个使用开始日期,另一个使用结束日期。
  • 我们使用了 getFullYeargetMonthgetDate 分别检索年份、月份和日期,以及 Date.UTC() 方法将日期转换为毫秒。
  • 我们将上述步骤中的 diffTime 除以一天中的总毫秒数,并将其存储在 diffDays 中。
  • 我们使用了 toDateString() 方法在结果中表示日期部分。
  • 我们使用了带有 id 为 result 的 div 元素,使用 getElementById() 方法在 HTML 文档本身中返回输出。

示例

这是一个完整的示例代码,实现了上述步骤,以使用 UTC 时间戳 在 JavaScript 中获取两个日期之间的天数。

<html>
<head>
    <title>
        To get the number of days between two dates
    </title>
</head>
<body>
    <div id="result"></div>
    <script>
        let result = document.getElementById('result');
        let date1 = new Date('2024-09-23');
        let date2 = new Date('2024-10-30');

        let diffTime = Math.abs(Date.UTC(date2.getFullYear(), 
                         date2.getMonth(), date2.getDate()) - 
                         Date.UTC(date1.getFullYear(), date1.getMonth(), 
                         date1.getDate()));
        let diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
        result.innerHTML = "Difference in days from " 
                            +date1.toDateString() +" to " 
                            +date2.toDateString() +" is: " +diffDays;
    </script>
</body>
</html>

使用当前日期获取天数

在这种方法中,我们使用了 new Date() 对象以毫秒为单位获取当前日期。

  • 我们初始化了两个日期对象,一个使用 new date 获取 当前日期,另一个使用结束日期。
  • 所有其他步骤都类似于第一种获取天数的方法,我们还使用了 Math.ceil() 来避免输出小数部分。

示例

这是一个完整的示例代码,实现了上述步骤,以使用 当前日期 在 JavaScript 中获取两个日期之间的天数。

<html>
<head>
    <title>
        To get the number of days between two dates
    </title>
</head>
<body>
    <div id="result"></div>
    <script>
        let result = document.getElementById('result');
        let curr_date = new Date();
        let date2 = new Date('2024-10-30');

        let diffTime = Math.abs(date2.getTime()-curr_date.getTime());
        let diffDays = Math.ceil(diffTime/(1000*60*60*24));
        result.innerHTML = "Difference in days from " 
                            +curr_date.toDateString() +" to " 
                            +date2.toDateString() +" is: " +diffDays;
    </script>
</body>
</html>

结论

在本教程中,我们了解了四种不同的方法来获取 JavaScript 中两个日期之间的天数。讨论的四种方法是:使用 日期 对象、MomentJS 库、UTC 时间戳 和使用 当前日期

更新于: 2024年9月23日

8K+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始
广告