JavaScript 的 Date
对象堪称绝妙,它内置了众多方法来处理日期。这些方法用于提取日期的各个部分、修改给定的日期以及支持不同的时间转换等。虽然有许多第三方库如 moment.js
、Date-fns
和 Day.js
可以用来处理日期和时间,但并非每次我们都需要依赖它们。
好了,让我们开始吧。
JavaScript 的 Date
对象会使用浏览器的时间区并返回当前的日期。例如,当你在浏览器控制台输入 new Date();
,你会看到类似这样的输出:Tue Mar 01 2022 09:52:43 GMT+0530 (India Standard Time)
。不过,别期待在不同地区会得到相同的结果哦!
获取今天的日期和时间
这里有一些日常工作中可能需要用到的实用函数:
getToday()
function getTodayObj() {
return new Date();
} // 返回可应用所有日期方法的日期对象。
// 示例输出:Tue Mar 01 2022 10:42:34 GMT+0530 (India Standard Time)
function getTodayString() {
return Date();
} // 返回日期的字符串格式。
// 示例输出:'Tue Mar 01 2022 10:43:24 GMT+0530 (India Standard Time)'
function getTodayMilliSeconds() {
return Date.now();
} // 返回今天的毫秒数。
// 示例输出:1646111650943
function getTodayUtcString() {
return new Date().toUTCString();
} // 返回今天的 UTC 字符串。
// 示例输出:Tue, 01 Mar 2022 05:14:22 GMT
function getTodayUtcTZFormat() {
return new Date().toISOString();
} // 返回今天的 UTC 时间格式(ISO)。
// 示例输出:2022-03-01T05:14:42.479Z
计算日期差异
在深入代码之前,我们需要理解一些基本概念:
- 当你在日期对象上使用
+, -
操作时,它会被强制转换为数字,并返回日期的毫秒值。 - 你可以通过
new Date('date string')
创建日期对象。 - 我们通常如何计算每天的毫秒数?24小时 * 60分钟 * 60秒 * 1000毫秒 = 86400000 毫秒每天。
现在,我们可以轻松理解如何计算日期差异了。
const date1 = new Date('02/01/2022');
const date2 = new Date('02/28/2022');
function getDateDifference(date1, date2) {
return (date2 - date1) / (1000 * 60 * 60 * 24);