📜  为什么 JavaScript - Date getMonth() 返回 11 - Javascript (1)

📅  最后修改于: 2023-12-03 15:21:36.135000             🧑  作者: Mango

为什么 JavaScript - Date getMonth() 返回 11

在 JavaScript 中,Date 是表示日期和时间的内置对象。其中,getMonth() 方法是用于获取日期中的月份,返回值为 0 到 11 的整数。然而,有时候我们会发现 getMonth() 返回的值不是我们期望的值,这就需要我们了解一些 JavaScript 中和日期相关的知识。

JavaScript 日期和时间

在 JavaScript 中,日期和时间是通过 Date 对象来处理的。当我们创建一个 Date 对象时,可以指定日期和时间,也可以不指定。例如:

const date1 = new Date(); // 创建一个当前时间的对象
const date2 = new Date('2021/10/10 10:10:10'); // 创建一个指定时间的对象
const date3 = new Date(2021, 9, 10, 10, 10, 10); // 创建一个指定年、月、日、时、分、秒的对象,注意月份从0开始计数

在创建 Date 对象时,月份是从0开始计数,即0表示一月,1表示二月,以此类推。这就是为什么在 getMonth() 方法中返回的月份值加1后才是我们常见的月份值。

getMonth() 返回值为什么是11?

回到题目中的问题,如果 getMonth() 方法返回的值是11,那么就代表着这个日期的月份是12月,因为12月的索引是11。那么我们就需要检查一下创建的 Date 对象是否正确。

const date = new Date('2021/12/25'); // 创建一个12月25日的对象
const month = date.getMonth(); // 获取月份
console.log(month); // 输出11

输出结果是11,说明这个 Date 对象表示的确实是12月份。如果我们把月份改成其他的值,就会发现 getMonth() 返回的值也会发生相应的变化。

const date1 = new Date('2021/01/25'); // 创建一个1月25日的对象
const month1 = date1.getMonth(); // 获取月份
console.log(month1); // 输出0

const date2 = new Date('2021/02/25'); // 创建一个2月25日的对象
const month2 = date2.getMonth(); // 获取月份
console.log(month2); // 输出1
总结

在 JavaScript 中,Date 是表示日期和时间的内置对象,通过 getMonth() 方法可以获取日期中的月份。由于月份是从0开始计数的,因此 getMonth() 方法返回的值是0到11的整数。如果 getMonth() 返回的值为11,那么就代表着这个日期的月份是12月。在创建 Date 对象时,需要注意传入的月份是从0开始计数的,否则会导致 getMonth() 方法返回的值不正确。