new Date() 的默认时间是对象创建的时间。 b 那里中间有一个 new Date().setDate(new Date('2023-08-30').getDate() + 1) 运行的时候是九月,没有参数 new 出来的就是九月。然后你以为是 2023-09-01,但真正的日期是 2023-10-01,因为 getMonth 获得的数字要加1才是真正的月份。所以你是先 new 出了九月的某个日期,然后把号数改成了 31,但九月没有31,自动推算到下一个月的1号。 还有一件事,Date 对象又不是不能修改,new 来 new 去的干嘛,从头到尾就用一个不行吗。说的难听点你这写出来的就是一坨翔。