JavaScript 字符串转时间:为什么 10 月份会变成 11 月份?
JavaScript 字符串时间转换偏差
文章开头:
在 JavaScript 中,使用 new Date() 构造函数将字符串转换为时间对象时,用户可能会卡壳,发现对应月份的转换稍有偏移。让我们深入探讨这一现象及其背后的原因。
问题:字符串转换为 10 月份变成了 11 月份
如问题所示,当将字符串 "2020-10-27" 转换为时间对象时,它变成了 "2020-11-27",令人惊讶。
答案:Date 构造函数的秘密
从 new Date() 构造函数的源码中可以发现,它将 0-11 表示 1-12 个月。因此,传入的 "10" 实际上表示 11 月份,导致了这种转换偏差。
结论: