JavaScript Date setMonth() 方法
JavaScript 中的 Date.setMonth() 方法用于将 Date 对象的月份设置为指定值,范围从 0 到 11,其中 0 代表一月,11 代表十二月。此方法会更改日期对象的月份部分,而不会更改其他部分,例如日、年、时、分、秒和毫秒。如果传递给此方法的值超出有效范围(0 到 11),则日期对象的其他部分将进行相应调整。
我们还可以可选地修改日期对象的日期值。如果 Date 对象的日期无效,此方法将返回"NaN"作为结果。
语法
以下是 JavaScript Date setMonth() 方法的语法 -
setMonth(monthValue, dateValue);
参数
此方法接受两个参数。具体描述如下 -
-
monthValue - 0 到 11 之间的整数,其中 0 表示一月,11 表示十二月。
- 如果提供 -1,则结果为上一年的最后一个月。
- 如果提供 12,则结果为下一年的第一个月。
-
dateValue (可选) − 1 到 31 之间的整数。
- 如果提供 0,则结果为上个月的最后一天。
- 如果提供 -1,则结果为上个月最后一天的前一天。
- 如果提供 32,则结果为下个月的第一天(如果该月有 31 天)。
- 如果提供 32,则结果为下个月的第二天(如果该月有 30 天)。
返回值
此方法返回设置新月份和可选日期后表示调整后日期的时间戳。
示例 1
在下面的示例中,我们使用 JavaScript Date 的 setMonth() 方法将 Date 对象的"月份"设置为 10(十一月)-
<html> <body> <script> let date = new Date(); date.setMonth(10); // 将月份设置为十一月 document.write(date); </script> </body> </html>
输出
如果我们执行上述程序,月份将设置为 10,年份和日期将根据当地时间。
示例 2
在这里,我们将月份设置为 10(十一月),日期设置为(25)-
<html> <body> <script> let date = new Date(); date.setMonth(10, 25); // 将月份设置为 11 月,日期设置为 25 日 document.write(date); </script> </body> </html>
输出
执行后,此程序将返回包含所提供日期的时间戳。
示例 3
如果我们为 monthValue 提供"12",则年份将增加 1(yearValue + 1),并且月份将使用 0。
<html>
<body>
<script>
const date = new Date('2022-11-15');
date.setMonth(12, 15);
document.write(date);
</script>
</body>
</html>
输出
返回时间戳"2023 年 1 月 15 日星期日 05:30:00"。
示例 4
如果我们为 dateValue 提供"32",则月份将加 1(如果该月份有 31 天),并返回下个月的第一天。
<html>
<body>
<script>
const date = new Date('2023-10-30'); //October 2023 has 31 days.
date.setMonth(9, 32); //It will be November 1 2023.
document.write(date);
</script>
</body>
</html>
输出
返回时间戳"2023年11月1日,星期三,05:30:00"。
示例 5
如果我们将无效日期值作为参数传递给此函数,则该日期将被设置为"无效日期",并返回结果"NaN" -
<html>
<body>
const date = new Date('2023-10-30'); //October 30 2023
date.setMonth("asd", "vfdva"); //Invalid date
document.write(date.getMonth());
</script>
</body>
</html>
输出
如我们所见,输出结果为"NaN"。

