简体   繁体   中英

How to compare two datepicker dates using jQuery

This is my code:

var $from = $("#fromDate").datepicker('getDate');
var $to = $("#toDate").datepicker('getDate');
if($from > $to)
   alert("from date shouldn't greater than To date");

It is working if it is two dates in the same year. Otherwise, for example fromDate='1/12/2012'(dd/mm/yyyy) toDate='18/6/2013'(dd/mm/yyyy), while you check the condition, it is not working. It throws an alert, which is given.

Auto limit your dates instead. In this example the second combo box won't allow you to pick a lower date than the one you pick on the first one.

$(document).ready(function() {

  $("#txtFromDate").datepicker({

    numberOfMonths: 2,

    onSelect: function(selected) {
      $("#txtToDate").datepicker("option", "minDate", selected)
    }
  });

  $("#txtToDate").datepicker({

      numberOfMonths: 2,

      onSelect: function(selected) {
         $("#txtFromDate").datepicker("option", "maxDate", selected)

      }
  });
});

Here is a working demo .

You need to use this to get the day/month/year:

var day1 = $("#datepicker").datepicker('getDate').getDate();
var month1 = $("#datepicker").datepicker('getDate').getMonth() + 1;
var year1 = $("#datepicker").datepicker('getDate').getFullYear();

After that, you can compare the values.

Date.parse(fromDate) > Date.parse(toDate)

Example

var sDate = $('#EFT_FRM_DATE').val();
var eDate = $('#EFF_TO_DATE').val();

if (Date.parse(sDate) > Date.parse(eDate) || Date.parse(sDate) == Date.parse(eDate)) {
   ShowMessage(CurrencySetupExchangeIndex.EndDateGreaterStartDate, 'Error');
   //alert
   return false;
   return;
}

Simplified statement:

if (Date.parse(sDate) >= Date.parse(eDate)) {...

 $(document).ready(function() { $("#startdate").datepicker({ todayBtn: 1, format: "dd-mm-yyyy", startDate: '1d', autoclose: true, }).on('changeDate', function (selected) { var minDate = new Date(selected.date.valueOf()); $('#enddate').datepicker('setStartDate', minDate); if($('#enddate').val() != "" && ($("#enddate").datepicker("getDate") == null || Date.parse($("#enddate").datepicker("getDate"))< Date.parse($("#startdate").datepicker("getDate")))) { var date = new Date($("#startdate").datepicker("getDate")).toLocaleDateString(); date = date.split("/") date = date[0] + "-" + date[1] + "-" + date[2] $('#enddate').val(date) } }); $("#enddate").datepicker({ format: "dd-mm-yyyy", autoclose: true, }) });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM