Как я могу сравнить значения даты / времени, используя jQueryUI datepicker и ввод времени HTML5?

Я хочу проверить, что пара "начало" даты / времени предшествует паре "конец" даты / времени на странице. Я использую указатель даты jQueryUI и элемент / виджет ввода времени HTML5.

Это JQuery:

    var begD = $.datepicker.parseDate('mm/dd/yy', $('#BeginDate').val());
    var endD = $.datepicker.parseDate('mm/dd/yy', $('#EndDate').val());
    if (begD > endD) {
            alert('Begin date must be before End date');
            $('#BeginDate').focus();
            return false;
    }    

(см. этот сценарий в контексте здесь: http://jsfiddle.net/clayshannon/QCrXG/9/)

... работает для сравнения значений datepicker, но мне нужно также включить элементы времени, чтобы время (в той же дате), которое было раньше в элементе времени "Конец", чем в элементе времени "Начало", также помечало диапазон как недействительный.

Как это сделать?

1 ответ

Решение

Вот подход. Вам необходимо проверить, совпадают ли даты, и затем добавить в них время к новым объектам дат, которые затем можно сравнить. (Там может быть более быстрый способ сделать это, но это работает в тестировании, здесь: http://jsfiddle.net/mori57/SEqVE/):

} else if(begD.toString() == endD.toString() ){
    var dteString = begD.getFullYear() + "/" + (begD.getMonth()+1) + "/" + begD.getDate();
    var begT = new Date(dteString + " " + $('#BeginTime').val());
    var endT = new Date(dteString + " " + $('#EndTime').val());

    if( begT > endT ){
        alert('Begin date must be before End date');
        $('#BeginTime').focus();
        return false;
    }
}
Другие вопросы по тегам