首页 > 解决方案 > setMonth 和 getMonth 不返回相同的值

问题描述

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

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

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

为什么?

标签: javascriptdate

解决方案


问题并非每次都发生,只有当您在某个日期尝试时,当当前日期是该月的 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

推荐阅读