Это, кажется, делает трюк ...
var isFutureDate = new Date < new Date(
str
.match(/^\[(\w{3})\s(\d+),\s(\d{4})\]$/)
.slice(1)
.join(' ')
);
jsFiddle .
Это создает новый объект Date
, который по умолчанию соответствует текущему времени клиента, а затем создает второй Date
объект, передающий измененную версию вашего пользовательского ввода, которая может быть проанализирована конструктором Date
.Операторы <
вызывают valueOf()
обеих дат, что возвращает миллисекунды с эпохи Unix (эквивалент вызова getTime()
).
Вы можете учитывать начальные и конечные пробелы на входеиспользуя $.trim()
или заключая регулярное выражение в \s*
.
Вы можете поменять new Date
на $.now()
, что немного меньше символов