JavaScript is in that set of “some” languages. Most of it ties back to C’s structtm which zero-indexes months (0-11), weekdays (0-6), and the rarely used day of year (0-365), as well as offsetting years by 1900.
The odd man out, so to speak, is the date (or “mday” as it’s called there), which is in the range 1-31. One (Perl) book I own suggests that the zero-based ones are used to index arrays of strings and implies this one is different because it generally isn’t used that way.
But anyway, these are decisions made 50 years ago that still haunt us.
JavaScript: Hold my Date!
new Date().getYear() == 125JavaScript is in that set of “some” languages. Most of it ties back to C’s
struct tmwhich zero-indexes months (0-11), weekdays (0-6), and the rarely used day of year (0-365), as well as offsetting years by 1900.The odd man out, so to speak, is the date (or “mday” as it’s called there), which is in the range 1-31. One (Perl) book I own suggests that the zero-based ones are used to index arrays of strings and implies this one is different because it generally isn’t used that way.
But anyway, these are decisions made 50 years ago that still haunt us.