JavaScript Date.parse () и нулевые даты - PullRequest
10 голосов
/ 16 июля 2010

Я пытаюсь отсортировать список дат, но я борюсь с нулевыми датами, которые не обрабатываются последовательно.

Поэтому мне нужно что-то вроде:

var date = Date.parse(dateString);
if (!date) {
    date = Date.MinValue;
}

но я изо всех сил пытаюсь найти правильный синтаксис.Спасибо


Обновление: Ошибка оказалась другой проблемой.У меня Datejs , импортированный для использования в другой части проекта, поэтому я не понял, что Datejs определяет метод Date.parse(), который переопределяет стандартный метод JavaScript.

Так или иначе, оказывается, что у Datejs есть странная ошибка, которая означает, что он не обрабатывает даты, начинающиеся с «A» должным образом.Так что на самом деле мои нулевые даты были упорядочены правильно, это были только даты апреля и августа, которые затем смешивались с ними.

Исправление состоит в том, чтобы использовать метод Datejs Date.parseExact, который позволяет указывать определенную строку формата, см. здесь .

Ответы [ 3 ]

12 голосов
/ 16 июля 2010

parse () возвращает NaN при невозможном разборе, как насчет просто;

 var date = Date.parse(dateString) || 0;
6 голосов
/ 16 июля 2010

Вы можете использовать isNaN (дата) для проверки на недопустимую дату.Вы уверены, что хотите использовать MinValue; от Date? Я запускал js на chrome и продолжал получать undefined.

4 голосов
/ 27 февраля 2015

Если вы действительно ищете сравнение действительного объекта JS Date (который является «пустым» или не установленным, но, следовательно, по умолчанию 01 января 1970 г.), чтобы проверить, является ли он ложным - вы можете использовать:

var null_date = new Date(0);

Это создаст объект Date, для которого установлена ​​минимальная (нулевая) отметка времени, с которой Date () начинает считать ... что эквивалентно объекту Date, который никогда не был установлен.

...