Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
98
rated 0 times [  102] [ 4]  / answers: 1 / hits: 58953  / 11 Years ago, wed, april 3, 2013, 12:00:00

This question is purely to satisfy my curiosity.



In the JavaScript Date object, when you call getMonth() it returns the month but it counts from 0.



0 = January
1 = February
...


But when you call getDate() it starts counting from 1



1 = 1
2 = 2
...


Why the inconsistency?


More From » date

 Answers
76

I assume it's because it would be easier to reference in an array of names, i.e.



var months = [January, February, March, April, May, June, July,
August, September, October, November, December];

var d = new Date();

var namedMonth = months[d.getMonth()];


If getMonth() returned 1-12, then programmers would have to do d.getMonth()-1 everytime they wanted a fancy named month.



Days of the month don't have specific names per se. The getDate() returns 1-(28-31). We usually just refer to them by their number.



The same concept as getMonth() applies for getDay() also, which returns 0-6 based on the day of the week



var days = [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday];

var namedDay = days[d.getDay()];


All this returns something like:



console.log(Month: month[ + d.getMonth() + ]:  + namedMonth); 
//Month: month[3]: April
console.log(Day: days[ + d.getDay() + ]: + namedDay);
// Day: days[4] : Thursday

[#79134] Tuesday, April 2, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
mikael

Total Points: 73
Total Questions: 115
Total Answers: 86

Location: Central African Republic
Member since Mon, Aug 10, 2020
4 Years ago
;