如何在 JavaScript 中獲取兩個日期之間的天數?


要獲取 JavaScript 中兩個日期之間的天數,我們將瞭解四種不同的方法,並逐步進行解釋和程式碼示例。

在這篇文章中,我們有兩個不同的日期,我們的任務是在 JavaScript 中獲取這兩個日期之間的天數。

獲取兩個日期之間天數的方法

以下是獲取 JavaScript 中兩個日期之間天數的方法列表,我們將在本文中逐步解釋並提供完整的程式碼示例。

使用 Date 物件獲取天數

為了獲取兩個日期之間的天數,我們使用了 日期 物件,它返回日、月、日期、年、小時、分鐘、秒和時區。

  • 我們初始化了兩個日期物件,一個帶有開始日期,另一個帶有結束日期。
  • 使用 Date 物件的 getTime() 方法查詢開始日期和結束日期之間以毫秒為單位的時間差,並將其儲存在 diffTime 中。我們還使用了 Math.abs 來獲取非負值。
  • 我們將 diffTime 除以一天中的總毫秒數,並將其儲存在 diffDays 中。
  • 我們使用了 div 元素,其 ID 為 result,以便使用 getElementById() 方法在 HTML 文件本身中返回輸出。

示例

這是一個完整的示例程式碼,實現了上述步驟,以便使用 date 物件在 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 的天數差。
  • 我們使用了 div 元素,其 ID 為 result,以便使用 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() 方法在結果中表示日期部分。
  • 我們使用了 div 元素,其 ID 為 result,以便使用 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 中兩個日期之間的天數。討論的四種方法是:使用 date 物件、MomentJS 庫、UTC 時間戳以及使用 當前日期

更新於: 2024年9月23日

8K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告