JavaScript already has a Date.parse()
method, why would we talk about date parsing?
Because in short the Date.parse()
method implementation is dependent on the browser itself, so it could return a different result in chrome/firefox/ie like here**
Introducing Moment.js
Moment.js is a library for parsing, validating, manipulating, and formatting dates.
it has an excellent documentation, it has plenty of helpful examples
Parsing & Validating dates
var isValid = moment('12-252-1995').isValid() //returns false
var date = moment('12-25-1995', 'MM-DD-YYYY') //prase a date using a specify format, if the actual date is in a different format isValid() will return false
var date = moment('12-25-1995', ['MM-DD-YYYY', 'YYYY-MM-DD']) //parse a date with a list of possible formats that it could matches
//using it as a wrapper of a date object
var day = new Date(2011, 9, 16)
var dayWrapper = moment(day)
Bonus for Asp.net MVC users
ASP.NET returns dates in Json as /Date(1198908717056)/
or /Date(1198908717056-0700)/
This will happen often if you try to make an ajax call to an asp.net action and it returns a JsonResult
that contains DateTime
var date = moment('/Date(1198908717056-0700)/') // December 28 2007 10:11 PM