Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JavaScript's getDate returns wrong date

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?

like image 523
VahidN Avatar asked Mar 21 '10 19:03

VahidN


People also ask

What does getDate return in JavaScript?

The getDate() method returns the day of the month for the specified date according to local time.

What is date now () in JavaScript?

The static Date.now() method returns the number of milliseconds elapsed since January 1, 1970 00:00:00 UTC.


1 Answers

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 } 
like image 145
Christian C. Salvadó Avatar answered Sep 27 '22 20:09

Christian C. Salvadó