setMonth和getMonth不返回相同的值

时间:2018-05-31 09:22:02

标签: javascript date

当我写这篇文章时,我遇到了以下问题:

const date = new Date();
date.setMonth(5);
date.getMonth(); // returns 6

date.setMonth(4);
date.getMonth(); // returns 4

为什么?

1 个答案:

答案 0 :(得分:0)

问题并非每次都发生,只有当您在某个日期进行尝试时,当天是当月的第31天。

所以今天是2018年5月31日。

当您设置的月份不是31天长的月份时,那天就会溢出,月份会自动增加1。

const date = new Date();
console.log(date.getMonth(), date.getDate()); // 4 31
date.setMonth(5);
console.log(date.getMonth(), date.getDate()); // 6 1