这个问题纯粹是为了满足我的好奇心。
在JavaScript Date对象中,当您调用getMonth()
时,它返回月份,但从0开始计数。
0 = January
1 = February
...
但是,当您调用
getDate()
时,它从1开始计数1 = 1
2 = 2
...
为什么不一致?
最佳答案
我认为这是因为在名称数组中引用会更容易,即
var months = ["January", "February", "March", "April", "May", "June", "July",
"August", "September", "October", "November", "December"];
var d = new Date();
var namedMonth = months[d.getMonth()];
如果
getMonth()
返回了1-12
,那么程序员每次想要一个名为month的幻想时,都必须做d.getMonth()-1
。一个月中的几天本身没有特定的“名称”。
getDate()
返回1-(28-31)
。我们通常只按编号来指代它们。与
getMonth()
相同的概念也适用于getDay()
,它根据星期几返回0-6
var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
var namedDay = days[d.getDay()];
所有这些都返回如下内容:
console.log("Month: month[" + d.getMonth() + "]: " + namedMonth);
//Month: month[3]: April
console.log("Day: days[" + d.getDay() + "]: " + namedDay);
// Day: days[4] : Thursday
关于javascript - 为什么javascript getMonth从0开始计数,getDate从1开始计数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15799514/