Проверьте, что конечная дата больше начальной с помощью jQuery - PullRequest
96 голосов
/ 07 мая 2009

Как проверить / проверить в jQuery, больше ли дата окончания [текстовое поле], чем дата начала [текстовое поле]?

Ответы [ 15 ]

2 голосов
/ 05 февраля 2011

Мне нравится то, что сказал Франц, потому что я использую: P

var date_ini = new Date($('#id_date_ini').val()).getTime();
var date_end = new Date($('#id_date_end').val()).getTime();
if (isNaN(date_ini)) {
// error date_ini;
}
if (isNaN(date_end)) {
// error date_end;
}
if (date_ini > date_end) {
// do something;
}
1 голос
/ 01 ноября 2012
function endDate(){
    $.validator.addMethod("endDate", function(value, element) {
      var params = '.startDate';
        if($(element).parent().parent().find(params).val()!=''){
           if (!/Invalid|NaN/.test(new Date(value))) {
               return new Date(value) > new Date($(element).parent().parent().find(params).val());
            }
       return isNaN(value) && isNaN($(element).parent().parent().find(params).val()) || (parseFloat(value) > parseFloat($(element).parent().parent().find(params).val())) || value == "";              
      }else{
        return true;
      }
      },jQuery.format('must be greater than start date'));

}

function startDate(){
            $.validator.addMethod("startDate", function(value, element) {
            var params = '.endDate';
            if($(element).parent().parent().parent().find(params).val()!=''){
                 if (!/Invalid|NaN/.test(new Date(value))) {
                  return new Date(value) < new Date($(element).parent().parent().parent().find(params).val());
            }
           return isNaN(value) && isNaN($(element).parent().parent().find(params).val()) || (parseFloat(value) < parseFloat($(element).parent().parent().find(params).val())) || value == "";
                 }
                        else{
                     return true;
}

    }, jQuery.format('must be less than end date'));
}

Надеюсь, это поможет:)

0 голосов
/ 27 октября 2018

это должно работать

$.validator.addMethod("endDate", function(value, element) {
            var startDate = $('#date_open').val();
            return Date.parse(startDate) <= Date.parse(value) || value == "";
        }, "* End date must be after start date");
0 голосов
/ 29 июля 2018

Сначала вы разделяете значения двух полей ввода с помощью функции разделения. затем конкатать то же самое в обратном порядке. после конкат нации разобрать его на целое число. затем сравните два значения в операторе if. например, 1> 20-11-2018 2> 21-11-2018

после разделения и сопоставления новые значения для сравнения 20181120 и 20181121 после этого сравнивают одинаково.

var date1 = $('#datevalue1').val();
var date2 = $('#datevalue2').val();
var d1 = date1.split("-");
var d2 = date2.split("-");

d1 = d1[2].concat(d1[1], d1[0]);
d2 = d2[2].concat(d2[1], d2[0]);

if (parseInt(d1) > parseInt(d2)) {

    $('#fromdatepicker').val('');
} else {

}
0 голосов
/ 07 мая 2009

Если формат гарантированно правильный YYYY / MM / DD и точно такой же между двумя полями, вы можете использовать:

if (startdate > enddate) {
   alert('error'
}

Как сравнение строк

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