Date对象是JavaScript处理时间的核心工具,基于Unix时间戳,支持本地和UTC时间操作,提供创建、读取、设置及格式化日期时间的多种方法。
Date 对象是 JavaScript 中处理时间的核心工具,用来创建、读取、修改和格式化日期与时间。它基于 Unix 时间戳(毫秒数),默认使用本地时区,但也能处理 UTC 时间。
最常用的是调用 new Date() 构造函数:
new Date():当前本地时间new Date("2025-05-20") 或 new Date("May 20, 2025 14:30"):解
析字符串(注意格式兼容性,推荐 ISO 格式)new Date(2025, 4, 20, 14, 30, 0):年、月(0 起始!)、日、时、分、秒(毫秒可选)new Date(1716215400000):直接传入毫秒时间戳(从 1970-01-01 00:00:00 UTC 开始)这些方法返回数字,不带单位,注意月份从 0 开始,星期日为 0:
getFullYear():四位年份(如 2025)getMonth():0–11 的月份数,需 +1 才是常规显示getDate():当月第几天(1–31)getDay():星期几(0=周日,1=周一…)getHours() / getMinutes() / getSeconds() / getMilliseconds()getTime():返回自 1970 年以来的毫秒数(时间戳)valueOf():同 getTime(),用于隐式转换
UTC 版本方法也存在,如 getUTCFullYear()、getUTCHours(),用于获取协调世界时值。
所有 set 方法都返回更新后的时间戳(毫秒数),可用于链式调用或判断:
setFullYear(2025, 0, 1):设年、月(0起)、日;可只传年setMonth(5):设月份(0起),会自动进位(如 13 → 下一年 1 月)setDate(32):设日,同样自动进月setHours(15, 30, 45, 123):时、分、秒、毫秒(后三项可选)setTime(1716215400000):直接重设整个时间戳UTC 版本如 setUTCHours() 同理,影响的是 UTC 时间而非本地时间。
适合快速展示,但国际化支持弱,生产环境建议用 Intl.DateTimeFormat 或库(如 dayjs):
toString():本地时区的完整字符串(含时区缩写)toUTCString():UTC 时间字符串toISOString():标准 ISO 8601 格式("2025-05-20T06:30:00.000Z"),始终 UTC,常用于 API 通信toLocaleString():按系统语言/地区格式化(可传 locale 和 options 参数增强控制)toDateString() / toTimeString():分别只取日期部分或时间部分注意:toISOString() 要求 Date 实例有效(不能是 Invalid Date),否则报错。
基本上就这些。Date 对象方法看着多,真正高频用的也就十来个。关键是记清“本地 vs UTC”、“0 起始月/星期”、“字符串解析的坑”,再配合 getTime() 和 setTime() 做计算,大部分日期逻辑都能稳住。