今天我刚刚发现,如果我在今天的日期加上1个月,它将返回1/7。
有人可以为此提供帮助吗?非常感谢。
注意:我没有将日期分配给today
,因为今天是31/5,有些人仍然是30/5
var today = new Date(); // today is 31/5 in my timezone
console.log(today);
today.setMonth(today.getMonth() + 1);
console.log(today);
答案 0 :(得分:3)
这是日期在JavaScript中的工作方式的怪异方式。根据{{3}}:
该月的当前日期将对此行为产生影响 方法。从概念上讲,它将增加由 该月的当前日期至指定的新月的第一天 参数,以返回新日期。例如,如果当前 value是2016年8月31日,调用setMonth的值为1将 返回2016年3月2日。这是因为2016年2月有29天。
在您的情况下,如果将一个月添加到5月31日,那么您将获得6月31日。这不是一个有效的日期,JavaScript将其转换为7月1日