JavaScript Date对象用于处理日期时间,核心是获取(如getFullYear、getMonth)和设置(如setFullYear、setMonth)各部分值,创建方式有4种:当前时间、时间字符串、数值参数、时间戳,需注意月份从0开始及时区问题。
JavaScript 的 Date 对象用来处理日期和时间,核心是“获取”和“设置”——获取当前或指定时间的年月日时分秒,设置(修改)某个部分的值。它不是字符串,不能直接拼接,得用方法读写。
创建是第一步,不同方式对应不同场景:
new Date() —— 最常用,返回此刻的完整日期时间new Date('2025-05-20') 或 new Date('May 20, 2025 14:30') —— 浏览器会尝试解析,推荐用 ISO 格式(YYYY-MM-DD 或 YYYY-MM-DDTHH:mm:ss),兼容性好new Date(2025, 4, 20, 14, 30, 0) —— 注意:月份从 0 开始(0 = 一月,4 = 五月),这点极易出错new Date(1716215400000) —— 表示从 1970-01-01 00:00:00 UTC 开始经过的毫秒数,常用于存储和计算所有获取方法都以 get 开头,返回数字(不是字符串)。注意区分带 UTC 和不带的:
getFullYear() → 年份(如 2025)getMonth() → 月份(0–11),需 +1 才是日常说的 1–12 月getDate() → 月中第几天(1–31)getDay() → 星期几(0=周日,1=周一……6=周六)getHours()、getMinutes()、getSeconds()、getMilliseconds() → 分别获取时分秒毫秒toLocaleString()、toLocaleDateString() 或 toLocaleTimeString(),它们会按用户系统语言和地区自动格式化设置方法以 set 开头,参数填数字,调用后原对象会被修改(Date 是可变对象):
setFullYear(2025) → 改年份;可连设:setFullYear(2025, 5, 1)(年、月、日)setMonth(6) → 改月份(7 月,因从 0 起算);注意:设 13 会自动进位到下一年 1 月setDate(32) → 如果当月只有 30 天,会顺延到下个月 2 号setHours(10, 30, 45) → 同时设时
、分、秒;只传一个参数则分秒归零setTime(毫秒数) —— 直接重置整个时间点,适合精确控制日常开发中,光取值设值不够,还得转格式、算间隔:
toISOString().slice(0,10) 快速取 YYYY-MM-DD;或用 Intl.DateTimeFormat 精确控制(如 new Intl.DateTimeFormat('zh-CN').format(date))date1.getTime() - date2.getTime() 得毫秒差,再除以 1000 * 60 * 60 * 24
getDate() 值最直接。例如今天加 7 天:date.setDate(date.getDate() + 7)
getYear() 已废弃;getYear() 返回的是距 1900 年的年数,别用;所有 getXXX() 默认是本地时区,要 UTC 用 getUTCXXX()