JavaScript Date 对象详解:构造函数、常用方法及时间处理指南

洛溪
洛溪
发布时间:2026-10-14 | 1人浏览过
原创

在 JavaScript 开发中,处理时间和日期是常见需求。本文基于内置的 Date 对象,详细解析了其四种实例化方式,并梳理了获取时间、设置时间、格式化输出及时间戳换算的核心函数与使用场景。

构建 Date 对象的四种方式

JavaScript 通过 Date 对象提供时间和日期的计算功能。要使用这些功能,首先需要创建一个 Date 实例。根据传入参数的不同,共有以下四种构造函数:

  1. 当前时间:
    调用时无参数。
    let dateObj = new Date();
  2. 毫秒数:
    指定距离起始时间 1970 年 1 月 1 日 (UTC) 的毫秒数。
    let dateObj = new Date(milliseconds);
  3. 日期字符串:
    传入符合规范的日期时间字符串,系统会自动解析。
    let dateObj = new Date("January 1, 1998 20:13:15");

    注意:此过程通常由 Date.parse() 内部处理,确保字符串能被正确识别为有效日期。

  4. 具体数值组合:
    按顺序传入年、月、日、时、分、秒、毫秒。如果不写某些项,后续项默认补 0(但月份是从 0 开始计数的,即 0 代表 1 月)。
    let dateObj = new Date(year, month, day, hours, minutes, seconds, milliseconds);
    // 例如:2023年1月1日
    let specificDate = new Date(2023, 0, 1);

获取时间与日期数据

创建好对象后,可以使用一系列 get 开头的函数提取具体的时间分量。这些方法返回的是数值类型:

  • getDate():返回一个月中的第几天(1-31)。
  • getDay():返回一周中的星期几(0 为星期日,6 为星期六)。
  • getFullYear():返回四位数年份(推荐替代已过时的 getYear())。
  • getHours():返回小时数(0-23)。
  • getMinutes():返回分钟数(0-59)。
  • getSeconds():返回秒数(0-59)。
  • getMilliseconds():返回毫秒数(0-999)。
  • getMonth():返回月份数(0 代表 1 月,11 代表 12 月)。
  • getTime():返回从 1970 年 1 月 1 日到该时间的毫秒时间戳。这是进行时间加减运算的基础。

关键注意事项

在处理日期时需注意两个常见的易错点:

  • 月份索引偏移:在创建或获取月份时,JS 中月份是从 0 开始的。例如 new Date(2023, 0) 表示 2023 年 1 月。
  • 旧版 API 限制:getYear() 和 setYear() 返回的是真实年份减去 1900 的值,且在处理 2000 年以后的日期时表现不一致。现代开发应始终优先使用 getFullYear() 和 setFullYear()。

设置时间属性

对应的 set 系列函数用于修改 Date 对象中的具体属性。它们不仅能更新对象状态,大多数还会返回调整后的新时间戳(自 1970 年起始的毫秒数),方便链式调用或验证操作结果:

  • setDate(dayOfMonth):设置一个月的某一天(1-31)。
  • setFullYear(year, month, date):同时设置年、月、日。
  • setMonth(month, date):设置月份和日期。
  • setHours(hour, min, sec, ms):设置小时、分、秒、毫秒。
  • setMinutes(min, sec, ms):设置分、秒、毫秒。
  • setSeconds(sec, ms):设置秒、毫秒。
  • setTime(milliseconds):直接以毫秒数重置整个时间对象。
  • setMilliseconds(ms):仅设置毫秒部分。

格式化与转换显示

将内部的 Date 对象转换为人类可读的字符串主要有以下几种方式,区别在于语言环境和格式规范:

1. 本地化格式(跟随系统环境)

这些方法会根据用户浏览器的区域设置(Locale)返回相应语言的日期时间字符串:

  • toLocaleString():包含日期和时间的完整本地化字符串。
  • toLocaleDateString():仅返回日期部分的本地化字符串。
  • toLocaleTimeString():仅返回时间部分的本地化字符串。

2. 标准通用格式

以下方法返回的内容不受系统区域设置影响,始终保持一致的英文格式,适合程序间的数据传输或固定格式展示:

  • toString():返回完整的日期和时间字符串。
  • toDateString():返回日期部分(如 "Mon Jan 01 2024")。
  • toTimeString():返回时间部分(如 "09:00:00 GMT+0800")。

时间解析工具

Date.parse(dateString) 是一个静态方法,专门用于解析日期字符串。它接收一个日期字符串,返回该日期距 1970 年 1 月 1 日的毫秒数。如果字符串无法被解析为有效日期,则返回 NaN。这在进行用户输入的时间校验或预处理非常有用。

关于时区处理的补充

上述函数大多遵循当前环境的“本地时间”。如果需要更精确的时区控制(如强制使用 UTC 时间进行处理),应使用对应的 UTC 版本方法,如 getUTCFullYear() 或 setUTCHours()。

以上就是 JavaScript Date 对象基础用法的详细内容,更多关于 JavaScript 高级日期处理与时间库的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表