首页 > 解决方案 > 为什么 getMonth 在同一日期以不同的日期格式返回不同的值

问题描述

Date.getMonth() 以不同格式返回相同日期的不同值。

第一条语句采用 UTC 格式。

第二个使用 YYYY,M,DD 格式。

我没想到它会返回不同的值,因为它是同一日期。到底是怎么回事?

console.log(new Date('July 20, 69 00:20:18').getMonth()); // returns 6
console.log(new Date(1969, 7, 20).getMonth()); // returns 7

标签: javascriptdate

解决方案


对于您的第一个示例 - 阅读 MDN 文档以获取Date.getMonth(). 它返回一个零索引的数字月份表示,其中一月由 表示0,十二月由表示11。因此,七月(正确)由 表示6

第二个本身不使用格式,它将值作为参数传递给Date构造函数。MDN 文档Date()声明您使用值传递的参数7也是monthIndex. 因此,要正确标注七月,请6改为通过。


推荐阅读