DateJS parsing mystery
Asked Answered
B

1

7

I'm using DateJS to parse user-inputted dates, and getting some strange results.

  1. Date.parse("15 Jan 2010") returns Fri Jan 15 00:00:00 EST 2010 (right)

  2. Date.parse("15-Apr-2010") returns Thu Apr 15 00:00:00 EDT 2010 (right)

  3. Date.parse("15 Apr 2010") returns Thu Apr 1 00:00:00 EDT 2010 (wrong)

As far as I can tell, the d MMM yyyy input format works fine for every month except April and August; in those two cases, it returns the first of the month no matter what day is entered. Is this a bug, or is there a logical explanation I'm missing?

Bemuse answered 12/3, 2010 at 16:55 Comment(1)
well when I go to the DateJS home page and type in "15 Apr 2010", it sure seems to work ...Warden
B
9

Aha: Looks like the version in the "Download" link is a good bit older than the current source. Here's the commit that fixed this bug:

Dan Yoder fixed bug with timeContext pattern where if a date included "april" or "august", the parser thought the 'a' was the beginning of a time part (as in am/pm).

The most recent version of the EN-US script is here: http://code.google.com/p/datejs/source/browse/trunk/build/date-en-US.js It would be nice if the website linked to this instead of to a zip file that hasn't been updated for a couple of years.

Bemuse answered 12/3, 2010 at 22:9 Comment(1)
I was looking for a fix to another bug I was getting (Date.parse('12:00 pm')) and getting the newest version from svn fixed it. Thanks!Thies

© 2022 - 2024 — McMap. All rights reserved.