我理解getMonth()是零索引,因此,例如,6月是5。但在某些情况下,它会"偏离"2。
myDate = new Date(1622513190000)
month = myDate.getMonth()
console.log(myDate)
console.log(month)
的回报:
42021 - 06 - 01 t02:06:30.000z
有人知道为什么这是返回4而不是5吗?我正在使用节点v14.15.5,并且正在获得其他日期的预期结果(9月为8,8月为7)
谢谢!
大家好,欢迎来到这里
处理日期和时区有点棘手,这里的每个人都可以证明。一般情况下,我建议您阅读这篇关于协调世界时的文章。
您在myDate
中看到的Z
表示Zulu time
,是参考时区UTC±00:00的军称。±00:00
表示与祖鲁时间的最终偏移。
在为这个问题疯狂之后,我建议你:
总是- 以Zulu格式获取和存储日期,然后用它们计算时间流逝
- 可以向用户显示本地日期,但这只是为了显示它们。如果你必须计算一个用户输入,首先得到UTC等效(如@RobG建议)。
祝你好运!:)