我有一个日期对象1/10/2021
,当我将日期设置为负1时,它将返回31/10/2021
。
我希望这里是2021年9月30日。
这是我的模拟代码:
const _date = new Date(2021, 10, 1);
_date.setDate(_date.getDate() - 1);
console.log(_date) // Sun Oct 31 2021 00:00:00 GMT+0800 (Singapore Standard Time)
任何人都可以解释我的代码有什么问题吗?以及如何解决这种情况?在这个问题上,我真的需要您的帮助。
答案 0 :(得分:3)
月份以0为索引。您的第一条声明将日期设置为11月1日。
const _date = new Date(2021, 10, 1);
console.log(_date) // Nov 1, 2021
此处有有关Date对象的更多文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
答案 1 :(得分:2)
月份的索引为0,因此您需要将10月份的索引更改为9。 或使用更直观的方法:
var _date = new Date('October 1 2021');
还可以考虑使用toString()方法。
var _date = new Date(2021, 9, 1);
_date.setDate(_date.getDate() - 1);
console.log(_date.toLocaleString());