如何在 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 时间戳 和使用 当前日期。
广告