JavaScript Date对象用于处理日期时间,核心是获取(如getFullYear、getMonth)和设置(如setFullYear、setMonth)各部分值,创建方式有4种:当前时间、时间字符串、数值参数、时间戳,需注意月份从0开始及时区问题。

JavaScript 的 Date 对象用来处理日期和时间,核心是“获取”和“设置”——获取当前或指定时间的年月日时分秒,设置(修改)某个部分的值。它不是字符串,不能直接拼接,得用方法读写。
创建日期对象:4 种常用方式
创建是第一步,不同方式对应不同场景:
-
当前时间:
new Date()—— 最常用,返回此刻的完整日期时间 -
指定时间字符串:
new Date('2024-05-20')或new Date('May 20, 2024 14:30')—— 浏览器会尝试解析,推荐用 ISO 格式(YYYY-MM-DD或YYYY-MM-DDTHH:mm:ss),兼容性好 -
传入年、月、日等数值:
new Date(2024, 4, 20, 14, 30, 0)—— 注意:月份从 0 开始(0 = 一月,4 = 五月),这点极易出错 -
时间戳(毫秒数):
new Date(1716215400000)—— 表示从 1970-01-01 00:00:00 UTC 开始经过的毫秒数,常用于存储和计算
获取日期各部分:用 getXXX 方法
所有获取方法都以 get 开头,返回数字(不是字符串)。注意区分带 UTC 和不带的:
-
getFullYear()→ 年份(如 2024) -
getMonth()→ 月份(0–11),需 +1 才是日常说的 1–12 月 -
getDate()→ 月中第几天(1–31) -
getDay()→ 星期几(0=周日,1=周一……6=周六) -
getHours()、getMinutes()、getSeconds()、getMilliseconds()→ 分别获取时分秒毫秒 - 想获取本地格式的完整字符串?用
toLocaleString()、toLocaleDateString()或toLocaleTimeString(),它们会按用户系统语言和地区自动格式化
设置日期各部分:用 setXXX 方法
设置方法以 set 开头,参数填数字,调用后原对象会被修改(Date 是可变对象):
立即学习“Java免费学习笔记(深入)”;
-
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()











