DateJS parsing mystery

2019-04-25 02:21发布

问题:

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?

回答1:

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.