17370845950

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

JavaScript 的 Date 对象用来处理日期和时间,核心是“获取”和“设置”——获取当前或指定时间的年月日时分秒,设置(修改)某个部分的值。它不是字符串,不能直接拼接,得用方法读写。

创建日期对象:4 种常用方式

创建是第一步,不同方式对应不同场景:

  • 当前时间new Date() —— 最常用,返回此刻的完整日期时间
  • 指定时间字符串new Date('2025-05-20')new Date('May 20, 2025 14:30') —— 浏览器会尝试解析,推荐用 ISO 格式(YYYY-MM-DDYYYY-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 开始经过的毫秒数,常用于存储和计算

获取日期各部分:用 getXXX 方法

所有获取方法都以 get 开头,返回数字(不是字符串)。注意区分带 UTC 和不带的:

  • getFullYear() → 年份(如 2025)
  • getMonth() → 月份(0–11),需 +1 才是日常说的 1–12 月
  • getDate() → 月中第几天(1–31)
  • getDay() → 星期几(0=周日,1=周一……6=周六)
  • getHours()getMinutes()getSeconds()getMilliseconds() → 分别获取时分秒毫秒
  • 想获取本地格式的完整字符串?用 toLocaleString()toLocaleDateString()toLocaleTimeString(),它们会按用户系统语言和地区自动格式化

设置日期各部分:用 setXXX 方法

设置方法以 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()