如何在 JavaScript 中獲取兩個日期之間的天數?
要獲取 JavaScript 中兩個日期之間的天數,我們將瞭解四種不同的方法,並逐步進行解釋和示例程式碼。
在本文中,我們有兩個不同的日期,我們的任務是在 JavaScript 中獲取兩個日期之間的天數。
獲取兩個日期之間天數的方法
以下是獲取 JavaScript 中兩個日期之間天數的方法列表,我們將在本文中逐步進行解釋和完整的示例程式碼。
使用 Date 物件獲取天數
為了獲取兩個日期之間的天數,我們使用了 日期 物件,它返回日、月、日期、年、時、分、秒和時區。
- 我們初始化了兩個日期物件,一個使用開始日期,另一個使用結束日期。
- 使用 Date 物件的 getTime() 方法查詢開始日期和結束日期之間以毫秒為單位的時間差,並將其儲存在 diffTime 中。我們還使用了 Math.abs 獲取非負值。
- 我們將 diffTime 除以一天中的總毫秒數,並將其儲存在 diffDays 中。
- 我們使用了帶有 id 為 result 的 div 元素,使用 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 時間戳獲取天數
- 我們初始化了兩個日期物件,一個使用開始日期,另一個使用結束日期。
- 我們使用了 getFullYear、getMonth 和 getDate 分別檢索年份、月份和日期,以及 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 時間戳 和使用 當前日期。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP