I'm sure someone will point out a logical reason for this. I don't understand why the following code is alerting 16th August 2011 and not 16th July?
var x=new Date(2011,07,16); alert(x);
penders
11:43 pm on Jun 28, 2011 (gmt 0)
Because the month (2nd param) is an integer in the range 0 (January) to 11 (December), not 1 to 12 as you are expecting. So, 7 indicates the 8th month of August.
The day (3rd param) is the usual 1 to 31. But all other params start at 0.