如何在 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 時間戳獲取天數
- 我們初始化了兩個日期物件,一個帶有開始日期,另一個帶有結束日期。
- 我們使用了 getFullYear、getMonth 和 getDate 分別檢索年、月和日期,以及 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 時間戳以及使用 當前日期。
廣告