Каков эффективный и точный способ сравнения дат с использованием jquery? - PullRequest
0 голосов
/ 25 февраля 2012

У меня есть два текстовых поля, в которые загружается jquery-маска ввода даты .

<input type="text" id="frm_date" name="frm_date" />

<input type="text" id="to_date" name="to_date" />

С помощью маскированного ввода значения разделяются символом '/' и получают что-то вроде 02/03/2011.

Я хочу точно подтвердить, что дата TO не должна быть ниже даты начала, дата From не должна быть больше даты TO и даты TO и FROM не должны совпадать, просто отправив предупреждение поле для информирования пользователя о корректировке значений.

Каков наилучший способ сделать это?

Ответы [ 2 ]

2 голосов
/ 25 февраля 2012

Вы должны использовать JavaScript Date Object ,

  1. Преобразуйте ваши даты в объект Date с помощью setFullYear () или просто используйте конструктор функции Date.
  2. Сравните ваши даты с функцией getTime ().
0 голосов
/ 25 февраля 2012

Хотите ли вы выбирать даты? jsFiddle

$('#to_date, #frm_date').datepicker({
    onSelect: function(dateText, inst) {
        var from, to, fromText, fromArray, toText, toArray;

        fromText = $('#frm_date').val();
        toText = $('#to_date').val();

        if(fromText && toText){
            fromArray = fromText.split('/');
            toArray = fromText.split('/');
            from = new Date(parseInt(fromArray[2], 10), parseInt(fromArray[0], 10), parseInt(fromArray[1], 10));
            to = new Date(parseInt(toArray[2], 10), parseInt(toArray[0], 10), parseInt(toArray[1], 10));

            if( from.getTime() >= to.getTime() ){
                alert('start after finish date!')
            }
        }
    }
});

Или с открытыми входами:

$('#to_date, #frm_date').change(function() {
    var from, to, fromText, fromArray, toText, toArray;
    //same everything here
});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...