Пользовательский интерфейс jQuery, Календарь, узнайте, не старше ли указанной даты 2 года - PullRequest
0 голосов
/ 15 декабря 2009

Слушайте, ребята, я использую стандартный болотный Календарь из системы jQuery UI. Показанный результат (после того, как пользователь щелкнул по дате) - MM / DD / YYYY.

Я хочу проверить, что эта дата не старше 2 лет

е

говорят, что пользователь выбирает

01/27/2004

это должно сказать, что дата старше 2 лет. Однако

12/25/2008

должен пройти тест.

есть идеи?

Ответы [ 3 ]

3 голосов
/ 15 декабря 2009
var selectedDate = new Date('01/27/2004');
selectedDate.setFullYear(selectedDate.getFullYear()+2);

var moreThan2YearsOld = selectedDate < new Date();
2 голосов
/ 15 декабря 2009

DateDiff возвращает разницу между датами в миллисекундах:

function DateDiff(date1, date2){
    return Math.abs(date1.getTime()-date2.getTime());
}

... и если это число превышает число микросекунд, эквивалентное двум годам ...

date1 = new Date("01/27/2004");
date2 = new Date(); // now

DateDiff(date1, date2);
// => 185717385653
//    31536000000 // == two years

Количество миллисекунд в год составляет 31536000000.

Подробнее по этому вопросу: Как лучше всего рассчитать разницу в датах в JavaScript

1 голос
/ 15 декабря 2009

Вы можете использовать функцию getFullYear , чтобы проверить это.

Вы можете использовать что-то вроде (не проверено):

var date = new Date($('#calendarId').val());
var today = new Date();
var moreThan2Years = (today.getFullYear() - date.getFullYear()) > 2;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...