javascript的Date对象是什么_如何处理日期和时间?

Date 是 JavaScript 内置构造函数,基于 Unix 时间戳创建和操作日期时间;支持无参、字符串、时间戳、多参数四种初始化方式;提供 getXXX()/setXXX() 方法读写本地/UTC 时间字段;格式化可用 toISOString()、toLocaleString() 等方法,复杂场景推荐 Intl 或 dayjs。

Date 是 JavaScript 中内置的构造函数,用于创建、读取、修改和格式化日期与时间。它基于 Unix 时间戳(从 1970 年 1 月 1 日 00:00:00 UTC 开始的毫秒数),所有操作都围绕这个数值展开。

如何创建 Date 对象

有多种方式初始化一个日期:

  • 不传参:创建当前系统时间,new Date()
  • 传字符串:如 new Date("2025-06-15")new Date("June 15, 2025 14:30")(注意解析依赖环境,推荐 ISO 格式)
  • 传数字(时间戳):如 new Date(1718438400000)
  • 传年、月、日等参数:如 new Date(2025, 5, 15, 14, 30, 0)(注意:月份从 0 开始,5 表示六月)

如何获取日期和时间的各个部分

Date 提供一系列 getXXX() 方法读取本地时区值:

  • getFullYear():四位年份(如 2025)
  • getMonth():月份(0–11),需加 1 才是常规月份
  • getDate():当月第几天(1–31)
  • getHours()getMinutes()getSeconds()getMilliseconds()
  • getDay():星期几(0 表示周日,1 表示周一)
  • 若需 UTC 时间,用 getUTCFullYear() 等对应方法

如何修改日期和时间

setXXX() 方法可直接更改对应字段:

  • setDate(25):把当天设为当月 25 日(自动处理跨月)
  • setMonth(11):设为 12 月(注意从 0 计数)
  • setFullYear(2025, 0, 1):同时设年、月、日(月仍从 0 开始)
  • setTime(1718438400000):直接设置时间戳,最精确也最常用

注意:所有 set 方法都会改变原 Date 对象,返回的是时间戳数值,不是新对象。

如何格式化输出和时区处理

浏览器默认提供几个简单格式化方法,但兼容性和可控性有限:

  • toString():本地时区字符串(含时区缩写,如 "GMT+0800")
  • toUTCString():UTC 时间字符串
  • toISOString():严格 ISO 8601 格式(如 "2025-06-15T06:30:00.000Z"),适合 API 传输
  • toLocaleDateString()toLocaleTimeString():按用户本地语言/地区格式化,支持 options 参数控制(如 weekday、year、month 等)

跨时区计算建议统一用 UTC 方法或借助 getTimezoneOffset() 手动换算;生产环境复杂场景推荐使用 Intl.DateTimeFormat 或成熟库如 dayjsdate-fns