JavaScript 标准内置对象 - Date

构造函数
Date()
构造函数可以创建一个基于传入参数构建的 Date
实例,或返回代表当前时间的字符串。
无参数
当没有提供参数时,新创建的 Date
对象代表当前的日期和时间。
1 | const date = new Date() |
参数为时间戳值 (Timestamp)
时间戳值表示从 1970年1月1日 00:00:00 UTC 到指定时间所经过的毫秒数,打印出来的则是这个“指定时间”
1 | const specificTime = new Date(1672531200000); |
传入年月日等具体数字
1 | // new Date(year, monthIndex, day, hours, minutes, seconds, ms) |
有一个值得注意的点是 monthIndex(月份)是从 0 开始的!
传入一个日期字符串
由于取决于具体实现,这种方式不推荐在生产环境中使用
1 | // 尽量使用 ISO 8601 格式 (YYYY-MM-DDTHH:mm:ss.sssZ) 来提高兼容性 |
静态方法
不同于对象的实例方法,静态方法可以在不创建实例的时候直接调用,其一般用作与实例无关的方法。
MDN 上给出的静态方法就三个,我下面只介绍第一个。
Date.now()
方法返回自 1970 年 1 月 1 日 00:00:00 (UTC) 到当前时间的毫秒数。
如果你新建一个对象并且不传参,获取的也是当前时间,用时间戳表示的话两者看起来就几乎一样了:
1 | const date = new Date() |
之所以末尾的数字还有一点不一样,我猜测是因为执行两条语句的时间差相差几毫秒。
实例方法
Date.prototype.getDate()
Date.prototype.getDay()
Date.prototype.getFullYear()
Date.prototype.getHours()
Date.prototype.getMilliseconds()
Date.prototype.getMinutes()
Date.prototype.getMonth()
Date.prototype.getSeconds()
Date.prototype.getTime()
Date.prototype.setDate()
Date.prototype.setFullYear()
Date.prototype.setHours()
Date.prototype.setMilliseconds()
Date.prototype.setMinutes()
Date.prototype.setMonth()
Date.prototype.setSeconds()
Date.prototype.setTime()
- 还有很多…
提供的实例方法太丰富了,下面几个 get 方法会尤其常用,其能精准的获取到当前的秒数、分钟数等,这就很实用了:
1 | const d = new Date('2024-05-20T13:14:00'); |
还有三种实例方法,这在输出给用户看的时间信息时会很有用:
1 | const date = new Date() |
常见实践
计算时间差
要表示成人能看懂的样子,还得进行一次除法的转换
1 | const startTime = new Date('2024-05-20 09:00:00'); |
- 标题: JavaScript 标准内置对象 - Date
- 作者: 三葉Leaves
- 创建于 : 2025-07-25 00:00:00
- 更新于 : 2025-08-15 12:09:51
- 链接: https://blog.oksanye.com/e2e813972ea7/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
预览: