Skip to content Skip to sidebar Skip to footer

Javascript Date Object Returns 'invalid Date' For My Date String

I want to create a Date object in Javascript using this string 04/21/2014 12:00p When passed to the constructor (new Date('04/21/2014 12:00p')), it returns Invalid Date. I've seen

Solution 1:

This is trivial only when using a library like moment.js:

var dt = moment("04/21/2014 12:00p","MM/DD/YYYY h:mma").toDate();

Otherwise, you would have considerable string manipulation to do. Also you would have to account for users in parts of the world that use m/d/y or other formatting instead of the y/m/d formatting of your input string.

If this string is being sent from some back-end process, you might consider changing the format to a standard interchange format like ISO-8601 instead. Ex. "2014-04-21T12:00:00"

Solution 2:

To manipulate the string in order to fulfill the requirements, could be a way, but you need to take care of all browser issues.

A more quick and dirty way is use moment.js library. It helps on formatting matters too.

Solution 3:

if (String.prototype.dateFromJava == null)
{
   String.prototype.fromJava = function (sDateString)
   {
      var aDateOrTime = sDateString.splt(" ");
      var aDateParts  = aDateOrTime[0].split("/");
      var aTimeParts  = aDateOrTime[1].split(":");
      var oDate       = null;  

      /* just get the pieces and passing them in to new Date(), return oDate */ 
   }
}

Post a Comment for "Javascript Date Object Returns 'invalid Date' For My Date String"