2010-03-12 4 views
7

Ich verwende DateJS, um vom Benutzer eingegebene Daten zu analysieren und einige seltsame Ergebnisse zu erhalten.DateJS Parsing Mystery

  1. Date.parse("15 Jan 2010") kehrt Fri Jan 15 00:00:00 EST 2010 (rechts)

  2. Date.parse("15-Apr-2010") kehrt Thu Apr 15 00:00:00 EDT 2010 (rechts)

  3. Date.parse("15 Apr 2010") kehrt Thu Apr 1 00:00:00 EDT 2010 (falsch)

Soweit ich das beurteilen kann, die d MMM yyyy Eingabeformat funktioniert gut jeden Monat außer April und August; In diesen beiden Fällen gibt es den ersten des Monats zurück, egal welcher Tag eingegeben wird. Ist das ein Fehler oder gibt es eine logische Erklärung, die ich vermisse?

+1

Nun, wenn ich auf die DateJS-Homepage gehe und "15 Apr 2010" eintippe, scheint es zu funktionieren ... – Pointy

Antwort

9

Aha: Sieht aus wie die Version in der "Download" Verbindung ist ein gutes Stück älter als die current source. Hier ist das commit that fixed this bug:

Dan Yoder Fehler behebt mit timeContext Mustern, bei dem, wenn ein Datum "April" enthalten oder "August", der Parser dachte, das 'a' war der Beginn einer Zeit Teil (wie in am/pm).

Die neueste Version des Skripts EN-US ist hier: http://code.google.com/p/datejs/source/browse/trunk/build/date-en-US.js Es wäre schön, wenn die Website damit verbunden, anstatt zu einer ZIP-Datei, die nicht für ein paar Jahre aktualisiert hat.

+0

Ich war auf der Suche nach einem Fix für einen anderen Fehler, den ich bekam (Date.parse ('12: 00 Uhr ')) und die neueste Version von Svn behoben. Vielen Dank! – Hardwareguy