JavaScript Date setMonth() 方法



JavaScript 中的Date.setMonth()方法用于将 Date 对象的月份设置为指定的值,范围从 0 到 11,其中 0 表示 1 月,11 表示 12 月。此方法更改日期对象的月份组件,而不更改其他组件,例如日期、年份、小时、分钟、秒和毫秒。如果提供给此方法的值超出有效范围(0 到 11),则日期对象的其他组件将相应调整。

或者,我们还可以修改日期对象中的日期值。如果 Date 对象的日期无效,则此方法将返回“NaN”作为结果。

语法

以下是 JavaScript Date setMonth() 方法的语法:

setMonth(monthValue, dateValue);

参数

此方法接受两个参数。下面描述了这两个参数:

  • monthValue − 一个介于 0 和 11 之间的整数,其中 0 为 1 月,11 为 12 月。
    • 如果提供 -1,则将导致前一年的最后一个月。
    • 如果提供 12,则将导致下一年的第一个月。
  • dateValue (可选) − 一个介于 1 和 31 之间的整数。
    • 如果提供 0,则将导致前一个月的最后一天。
    • 如果提供 -1,则将导致前一个月的倒数第二天。
    • 如果提供 32,则将导致下一月的第一天(如果该月有 31 天)。
    • 如果提供 32,则将导致下一月的第二天(如果该月有 30 天)。

返回值

此方法返回表示在设置新月份(以及可选的日期)后调整后的日期的时间戳。

示例 1

在以下示例中,我们使用 JavaScript Date setMonth() 方法将 Date 对象的“月份”设置为 10(11 月):

<html>
<body>
<script>
   let date = new Date();
   date.setMonth(10); // Sets the month to November

   document.write(date);
</script>
</body>
</html>

输出

如果我们执行上述程序,月份将设置为 10,年份和日期将根据本地时间。

示例 2

在这里,我们已将月份设置为 10(11 月)且日期设置为(25):

<html>
<body>
<script>
   let date = new Date();
   date.setMonth(10, 25); // Set month to November, and day to 25

   document.write(date);
</script>
</body>
</html>

输出

执行此程序后,将返回一个带有指定日期的时间戳。

示例 3

如果我们为 monthValue 提供“12”,则年份将加 1(yearValue + 1),并且 0 将用于月份。

<html>
<body>
<script>
   const date = new Date('2022-11-15'); //December 15 2022
   date.setMonth(12, 15); // It will be January 15 2023

   document.write(date);
</script>
</body>
</html>

输出

它返回一个时间戳,例如“2023年1月15日星期日 05:30:00 GMT+0530 (印度标准时间)”。

示例 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 GMT+0530 (印度标准时间)”。

示例 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”。

广告