首页 >web前端 >js教程 >为什么 JavaScript 中 `new Date(2023, 9)` 返回十月?

为什么 JavaScript 中 `new Date(2023, 9)` 返回十月?

Susan Sarandon
Susan Sarandon原创
2024-10-29 09:56:02236浏览

 Why does `new Date(2023, 9)` return October in JavaScript?

解码 JavaScript 的日期月份之谜

在 JavaScript 中,Date 构造函数中的不匹配月份之谜激发了人们的好奇心。令人困惑的是,用月份值 9 构造的日期返回十月,而不是预期的九月。

深入研究 JavaScript 的内部工作原理,我们会遇到这种差异背后的基本逻辑。与常见约定不同,JavaScript 的 Date 对象定义从 0 开始的月份。因此,提供的值 9 被解释为第十个月,对应于十月。

这个微妙的设计决策得到了 Mozilla 开发者网络的证实( MDN):

月份

代表月份的整数值,从 0 开始表示 1 月到 11 表示 12 月。

进一步的确认来自于语言规范本身:

  1. 设 mn 为 ?(ℝ(m) modulo 12).

这个数学公式有效将月份值以 12 为模数包裹起来,确保它始终落在 0 到 11 的范围内。

因此,代码中提供的月份值会根据 JavaScript 的月份定义正确转换为相应的 10 月.

以上是为什么 JavaScript 中 `new Date(2023, 9)` 返回十月?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn