这是为啥啊
javascript吧
全部回复
仅看楼主
level 2
就是简单的日期加1,8月 1号加1是8月2号, 为啥到了8月30号,加1直接到9月了。
2023年09月08日 07点09分 1
level 2
DD
2023年09月08日 07点09分 2
level 7
发贴时间是 9 月 8 号,所以截图是当天截的么??
如果是 8 月份执行的,第一条结果对,二、三不对,
如果是 9 月份执行,三条结果都不对。。
2023年09月19日 03点09分 3
就是9.8截图的啊,为啥会不对呢
2023年09月19日 06点09分
level 7
2023年09月19日 03点09分 4
level 13
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 去的干嘛,从头到尾就用一个不行吗。说的难听点你这写出来的就是一坨翔。
2023年09月19日 07点09分 5
level 2
找到原因拉@沉冰浮水, @BSPR0002
1:最里面的那个new Date('2023-08-30').getDate() + 1,运行结果是日期+1, 比如今天是1号,那运行就等于2,如果是31号,运行结果就是32
2:然后是第二层的new Date().setDate(参数),这层运行的参数如果传入1中所生成的数值,那就是生成当月的那一天,比如现在是9月, new Date().setDate(2) 就是9月2号,如果1中生成的结果是32,new Date().setDate(32), 由于9月没有32号这一天,就会从9月30号往后再移两天,也就是10月2号。
2023年09月19日 08点09分 6
1