Did you notice that he prints 2012
for the year? The problem is that he uses the month based on 0, so he believes that month 12 of this year is actually the 0th month of the next year. In other words, 0 is January and 11 is December, so January 12 of next year.
You need to subtract 1 from the month for human reading:
var d = new Date(exploded[0], exploded[1] - 1, exploded[2]);
If I changed the program to this:
var exploded = "2011-12-25".split('-'); var d = new Date(exploded[0], exploded[1] - 1, exploded[2]); document.write(d.toString());
It prints: Sun Dec 25 00:00:00 EST 2011
Gabe
source share