Я использую DateJS для парсинга введенных пользователями дат и получаю некоторые странные результаты.
Date.parse("15 Jan 2010")
возвраты Fri Jan 15 00:00:00 EST 2010
(Справа)
Date.parse("15-Apr-2010")
возвраты Thu Apr 15 00:00:00 EDT 2010
(Справа)
Date.parse("15 Apr 2010")
возвраты Thu Apr 1 00:00:00 EDT 2010
(неправильно)
Насколько я могу сказать, d MMM yyyy
формат ввода хорошо работает в течение каждого месяца кроме апреля и августа; в тех двух случаях это возвращает первый из месяца, какой день вводится. Действительно ли это - ошибка или является там логическим объяснением, которое я пропускаю?
Ага: Похоже, что версия по ссылке "Download" немного старше, чем текущий источник. Вот коммит, в котором исправлена эта ошибка:
Дэн Йодер исправил ошибку с шаблоном timeContext, когда если дата включала в себя "апрель" или "август", парсер считал, что 'a' является началом временной части (как в am/pm).
Самая последняя версия скрипта EN-US находится здесь: http://code.google.com/p/datejs/source/browse/trunk/build/date-en-US.js. Было бы хорошо, если бы на сайте была ссылка на него, а не на zip-файл, который не обновлялся уже несколько лет.