繁体   English   中英

JS日期给出错误的月份

[英]JS date giving wrong month

我在节点中处理日期已经有一段时间了。 我遇到了一个问题,即在添加月份后日期给出了错误的日期。 我进行了一些测试。

const d = new Date('2021-05-01');
console.log(d); // 2021-05-01T00:00:00.000Z
d.setMonth(d.getMonth() + 1);
console.log(d); // 2021-05-31T00:00:00.000Z

我很困惑为什么这不只是在跑步后给我2021-06-01

console.log(d.getMonth())

我意识到它正在返回 3 而不是 5 月

然后我跑了

console.log(d.toDateString())

这给了我2021 年 4 月 30 日星期五

所以我的问题是为什么它实际上是在 4 月 30 日创建new Date('2021-05-01')

我有node.js v17.3.0并且无法重现您的问题(不幸的是我还不能发表评论)。

所以我的建议是检查你的节点安装或者重新安装节点。 在节点 REPL 中运行您的代码后,我得到Tue Jun 01 2021作为结果。 我住在德国,我不知道这是否有帮助。

我最终发现这是因为时区。 我应该猜到,但如果其他人需要修复,您可以简单地将时间添加到日期以将其带到实际日期。

const date = new Date('2021-05-01 00:00:00');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM