JavaScript 日期对象
虽然 JavaScript 语言本身没有提供独立的日期数据类型,但它提供了一个强大的 Date
对象 来处理日期和时间。Date
对象包含了丰富的方法(但不含有任何属性
),可以方便地设置、获取和操作日期时间信息。
创建日期对象
你可以使用 new Date()
构造函数来创建一个 Date
对象。 Date
构造函数非常灵活,支持多种参数形式:
- 不带参数:
new Date()
创建一个表示当前日期和时间的Date
对象。 - 字符串参数:
new Date("YYYY-MM-DDTHH:mm:ss.sssZ")
根据指定格式的日期时间字符串创建一个Date
对象。
let date1 = new Date(); // 当前日期和时间
let date2 = new Date("2024-01-01T12:00:00"); // 2024年1月1日 12:00:00
- 数字参数:
new Date(year, monthIndex, day, hours, minutes, seconds, milliseconds)
根据指定的年月日时分秒毫秒创建一个Date
对象。
let date3 = new Date(2023, 11, 25); // 2023年12月25日 (注意月份从0开始)
获取日期时间信息
Date
对象提供了许多 get
方法,用于获取日期和时间的各个部分:
getFullYear()
: 获取年份 (四位数)getMonth()
: 获取月份 (0-11,0 表示一月)getDate()
: 获取日期 (1-31)getHours()
: 获取小时数 (0-23)getMinutes()
: 获取分钟数 (0-59)getSeconds()
: 获取秒数 (0-59)getDay()
: 获取星期几 (0-6,0 表示星期日)
let today = new Date();
console.log(today.getFullYear()); // 例如:2023
console.log(today.getMonth() + 1); // 例如:11 (月份需要加 1)
console.log(today.getDate()); // 例如:27
设置日期时间信息
与 get
方法相对应,Date
对象也提供了一系列 set
方法,用于修改日期和时间的各个部分:
setFullYear(year)
setMonth(monthIndex)
setDate(day)
setHours(hours)
setMinutes(minutes)
setSeconds(seconds)
let christmas = new Date(2023, 11, 25);
christmas.setHours(18); // 设置时间为下午 6 点
日期时间格式化
Date
对象提供了一些 to
方法,用于将日期格式化为字符串:
toDateString()
: 将日期部分格式化为可读字符串。toTimeString()
: 将时间部分格式化为可读字符串。toISOString()
: 将日期格式化为 ISO 8601 标准字符串 (YYYY-MM-DDTHH:mm:ss.sssZ)。
let today = new Date();
console.log(today.toDateString()); // 例如: "Wed Nov 29 2023"
console.log(today.toTimeString()); // 例如: "15:00:00 GMT+0800 (中国标准时间)"
console.log(today.toISOString()); // 例如: "2023-11-29T07:00:00.000Z"
日期计算和比较
Date
对象支持加减运算,可以方便地进行日期计算。
let tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1); // 计算明天的日期
// 比较两个日期
let date1 = new Date(2023, 11, 25);
let date2 = new Date(2023, 11, 26);
console.log(date1 < date2); // true
总结
JavaScript 的 Date
对象提供了丰富的功能,可以满足我们对日期和时间的各种操作需求。