The following script returns 20 instead of 21!
var d = new Date("2010/03/21"); document.write(d.getDate());
What am I doing wrong? Is this a JavaScript bug?
The getDate() method returns the day of the month for the specified date according to local time.
The static Date.now() method returns the number of milliseconds elapsed since January 1, 1970 00:00:00 UTC.
The Date.parse
method is implementation dependent (new Date(string)
is equivalent to Date.parse(string)
).
While this format will be available on modern browsers, you cannot be 100% sure that the browser will interpret exactly your desired format.
I would recommend you to manipulate your string, and use the Date constructor with the year, month and day arguments:
// parse a date in yyyy-mm-dd format function parseDate(input) { var parts = input.match(/(\d+)/g); // new Date(year, month [, date [, hours[, minutes[, seconds[, ms]]]]]) return new Date(parts[0], parts[1]-1, parts[2]); // months are 0-based }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With