JavaScript中操作日期主要依靠Date对象,支持创建、获取、修改和格式化时间;需注意月份从0开始、get方法基于本地时区、set方法会修改原对象等关键细节。

JavaScript 中操作日期主要靠 Date 对象,它既能表示当前时间,也能解析、计算和格式化任意时间点。掌握它的常用方法,就能轻松处理年月日、时分秒、时区、加减天数等日常需求。
创建日期对象的几种方式
最常用的是以下三种:
-
不传参:创建代表“当前时间”的 Date 实例
const now = new Date(); -
传时间字符串:如 ISO 格式(推荐)、中文格式(部分浏览器兼容性差)
new Date('2024-05-20')、new Date('2024/05/20 14:30') -
传年月日等数字参数:注意月份从 0 开始(0 = 1月,11 = 12月)
new Date(2024, 4, 20, 14, 30, 0)→ 表示 2024年5月20日14:30:00
获取时间信息的常用方法(getXXX)
这些方法返回对应单位的数值,**不带时区偏移**(即基于本地时区):
-
getFullYear()→ 年份(如 2024) -
getMonth()→ 月份(0–11,需 +1 才是真实月份) -
getDate()→ 月中第几天(1–31) -
getDay()→ 星期几(0=周日,1=周一…6=周六) -
getHours()、getMinutes()、getSeconds()、getMilliseconds() -
getTime()→ 自 1970-01-01 00:00:00 UTC 起的毫秒数(时间戳,通用且重要)
如果需要 UTC 时间(比如做跨时区计算),用 getUTCFullYear()、getUTCHours() 等对应方法。
立即学习“Java免费学习笔记(深入)”;
修改日期的方法(setXXX)
可直接改变 Date 对象内部的时间值,常用于“加减天数”、“设为某月第一天”等场景:
-
setDate(1)→ 设为当月第 1 天 -
setMonth(5)→ 设为 6 月(注意月份仍从 0 开始) -
setFullYear(2025, 0, 1)→ 设为 2025-01-01 -
setTime(1716211800000)→ 直接设为指定时间戳对应的时间
⚠️ 注意:所有 set 方法都会**改变原 Date 对象**,不是返回新对象。
格式化与转换的实用方法
把 Date 变成人类可读的字符串,不同方法适用不同场景:
-
toString()→ 本地完整字符串(含时区,如"Mon May 20 2024 14:30:00 GMT+0800") -
toDateString()→ 只有日期部分("Mon May 20 2024") -
toLocaleString()→ 按本地习惯格式(可传 locale 和 options 控制,如中文、24小时制) -
toISOString()→ 标准 ISO 8601 字符串(UTC 时间,"2024-05-20T06:30:00.000Z"),适合 API 传输 -
toJSON()→ 内部调用toISOString(),用于 JSON 序列化
自定义格式?通常用 getFullYear() 等组合拼接,或借助 Intl.DateTimeFormat 更灵活地国际化格式化。
基本上就这些。Date 对象方法不多,但细节(比如月份从 0 开始、get 是本地时间、set 会改原对象)容易踩坑。用熟了,日期处理就不复杂但容易忽略。











