在项目中对一个日期进行操作,使用了setMonth,比如2021-08-31,想设置为4月1日,但是结果会变成5月份,如下:
let dateStart = new Date('2021-08-31')
dateStart.setMonth(3)
dateStart.setDate(1)
console.log(dateStart)//得到结果是2021-05-01
为什么会这样,是因为先设置了月份,日期变成了2021-04-31,但是因为4月没有31号,所以会自动更正为2021-05-01,然后再运行setDate(1),最后结果就是2021-05-01。
正确做法应该是:
let dateStart = new Date('2021-08-31')
dateStart.setDate(1)
dateStart.setMonth(3)//得到结果是2021-04-01
以后要注意了,做下记录