JavaScript 字符串转时间:为什么 10 月份会变成 11 月份?

javascript 字符串转时间:为什么 10 月份会变成 11 月份?

JavaScript 字符串时间转换偏差

文章开头:

JavaScript 中,使用 new Date() 构造函数将字符串转换为时间对象时,用户可能会卡壳,发现对应月份的转换稍有偏移。让我们深入探讨这一现象及其背后的原因。

问题:字符串转换为 10 月份变成了 11 月份

如问题所示,当将字符串 "2020-10-27" 转换为时间对象时,它变成了 "2020-11-27",令人惊讶。

答案:Date 构造函数的秘密

从 new Date() 构造函数的源码中可以发现,它将 0-11 表示 1-12 个月。因此,传入的 "10" 实际上表示 11 月份,导致了这种转换偏差。

结论:

需要意识到 new Date() 构造函数在月度转换上的特殊性。为了避免偏差,转换月份时最好使用额外的验证或调整策略。

以上就是JavaScript 字符串转时间:为什么 10 月份会变成 11 月份?的详细内容,更多请关注其它相关文章!