如何在 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