Date parse in javascript -
i need parse date in javascript 17dec2010 javascript date. how that?
the short answer is: there's no standard means in javascript doing that, you'll have yourself. javascript got any standard string representation dates (as of ecmascript 5th edition, year ago — format simplified version of iso-8601), , format doesn't match format.
however, there add-on libraries can help, such datejs.
your particular format pretty easy parse (see below), if variations, can complex fast.
simple example:
var months = { en: { "jan": 0, "feb": 1, "mar": 2, "apr": 3, "may": 4, "jun": 5, "jul": 6, "aug": 7, "sep": 8, "oct": 9, "nov": 10, "dec": 11 } }; var datestring = "17dec2010"; var dt = new date( parseint(datestring.substring(5), 10), // year months.en[datestring.substring(2, 5).tolowercase()], // month parseint(datestring.substring(0, 2), 10) // day ); alert(dt); // alerts "fri dec 17 2010 00:00:00 gmt+0000 (gmt)" or similar
...but handles english (hence en
property of months
) , again, can complex quickly.
mplungjan quite correctly points out above fail on, "7dec2010". here's version that's bit more flexible, again, i'd library if there's variety in format:
var months = { en: { "jan": 0, "feb": 1, "mar": 2, "apr": 3, "may": 4, "jun": 5, "jul": 6, "aug": 7, "sep": 8, "oct": 9, "nov": 10, "dec": 11 } }; var datestring = "17dec2010"; var parts = /^(\d+)(\d+)(\d+)$/.exec(datestring); if (parts && parts.length == 4) { var dt = new date( parseint(parts[3], 10), // year months.en[parts[2].tolowercase()], // month parseint(parts[1], 10) // day ); display(dt); } else { display("date '" + datestring + "' not recognized"); }
Comments
Post a Comment