Date
对象
JavaScript 没有日期数据类型。但是你可以在你的程序里使用 Date
对象和其方法来处理日期和时间。
Date 对象有大量的设置、获取和操作日期的方法
。它并不含有任何属性。
JavaScript 处理日期数据类似于 Java。这两种语言有许多一样的处理日期的方法,也都是以 1970 年 1 月 1 日 00:00:00 以来的毫秒数来储存数据类型的。
Date
对象的范围是相对距离 UTC 1970 年 1 月 1 日 的前后 100,000,000 天。
创建日期对象
// 当前日期和时间
const now = new Date();
// 指定日期和时间
const specificDate = new Date('2024-07-21T12:30:00');
// 使用年、月、日、时、分、秒、毫秒来创建日期
const anotherDate = new Date(2024, 6, 21, 12, 30, 0, 0); // 月份是从0开始的,6表示7月
const anotherDate1 = new Date(2024, 6, 21); // 月份是从0开始的,6表示7月
ISO 8601 时间标准
ISO 8601 是一种国际标准,用于表示日期和时间。它提供了一种标准化的日期和时间表示法,确保在不同系统和地区之间的一致性。
日期和时间基本格式 :
YYYY-MM-DDTHH:mm:ss
(年-月-日T时:分:秒)- 例如:
2024-07-21T12:30:00
更多:
https://blog.csdn.net/sgx1825192/article/details/136917538
Date 对象的方法
处理日期时间的 Date 对象方法可分为以下几类:
- “set” 方法,用于设置 Date 对象的日期和时间的值。
- “get” 方法,用于获取 Date 对象的日期和时间的值。
- “to” 方法,用于返回 Date 对象的字符串格式的值。
- parse 和 UTC 方法,用于解析 Date 字符串。
设置日期和时间
now.setFullYear(2025); // 设置年份为2025
now.setMonth(5); // 设置月份为6月(月份从0开始)
now.setDate(15); // 设置日期为15号
now.setHours(10); // 设置小时为10点
now.setMinutes(45); // 设置分钟为45分
now.setSeconds(30); // 设置秒为30秒
now.setMilliseconds(500); // 设置毫秒为500毫秒
获取日期和时间
const year = now.getFullYear(); // 年份
const month = now.getMonth(); // 月份,从0开始(0表示1月,11表示12月)
const date = now.getDate(); // 日期(几号)
const day = now.getDay(); // 星期几,0表示星期天,1表示星期一,以此类推
const hours = now.getHours(); // 小时
const minutes = now.getMinutes(); // 分钟
const seconds = now.getSeconds(); // 秒
const milliseconds = now.getMilliseconds(); // 毫秒
日期格式化
// 转换为ISO格式字符串
const isoString = now.toISOString(); //2024-07-21T06:16:52.899Z
// 转换为本地日期字符串
const localDateString = now.toLocaleDateString(); //2024/7/21
// 转换为本地时间字符串
const localTimeString = now.toLocaleTimeString(); //14:16:52
// 转换为本地日期和时间字符串
const localString = now.toLocaleString(); //2024/7/21 14:16:18
日期字符串解析
Date.parse()
是 JavaScript 中用于解析日期字符串并返回自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数。它是静态方法,所以应该使用 Date
对象本身来调用它,而不是一个日期实例。
// 解析符合 ISO 8601 格式的日期字符串
const dateString1 = "2024-07-21T12:30:00Z";
const milliseconds1 = Date.parse(dateString1);
console.log(milliseconds1); // 输出类似 1729168200000
// 解析本地日期和时间字符串
const dateString2 = "July 21, 2024 12:30:00";
const milliseconds2 = Date.parse(dateString2);
console.log(milliseconds2); // 输出类似 1729168200000
// 解析无效日期字符串
const invalidDateString = "invalid date string";
const milliseconds3 = Date.parse(invalidDateString);
console.log(milliseconds3); // 输出 NaN
日期计算
// 加1天
const tomorrow = new Date();
tomorrow.setDate(now.getDate() + 1);
// 计算两个日期之间的差值(以毫秒为单位)
const differenceInMilliseconds = specificDate - now;
const differenceInDays = differenceInMilliseconds / (1000 * 60 * 60 * 24); // 转换为天
参考资料:
数字和日期 - JavaScript | MDN