[英]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.