2013-06-18 24 views
9

ktoś mógłbyś mi pomóc chłopaki. to jest mój kodjak porównać dwa datepicker dat jquery

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

to działa, czy jest to data samym roku dwa lata. w przeciwnym razie na przykład od Date = '1/12/2012' (dd/mm/rrrr) doDate = '18/6/2013 '(dd/mm/rrrr), podczas gdy sprawdzasz warunek, to nie działa. rzuca alert, który dałem.

+1

Możliwy duplikat ... http://stackoverflow.com/questions/492994/compare-dates-with -javascript –

+0

wydaje mi się w porządku http://jsfiddle.net/arunpjohny/kKh2J/1/ –

+1

mr Arun P Johny, który nie działa poprawnie. czy mógłbyś to jeszcze raz zobaczyć –

Odpowiedz

24

Czy mogę zamiast tego zaproponować automatyczne ograniczenie dat? W tym przykładzie drugie pole wyboru nie pozwala wybrać niższej daty niż ta wybrana na początku.

$(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) 

     } 

    }); 

}); 

Oto pracuje demo

+2

Wielkie dzięki! Uratowałeś mój dzień! –

+0

Wiem, że dodaję komentarz do starego posta, ale czy to działa bez interfejsu Jquery? Teraz używam Jquery 1.9.1 i próbuję użyć datepicker, ale kiedy odznaczę UI z twojego JSFiddle, przestaje działać. Jakieś pomysły? – Mkalafut

+0

Bardzo przydatne! ale chcę wiedzieć, jak uniemożliwić wybór tego samego dnia w polu 'txtFromDate'? Dzięki! – candlejack

2

Trzeba to wykorzystać, aby uzyskać dzień/miesiąc/rok

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

Po tym można porównać wartości.

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

Excample

var sDate = $('#EFT_FRM_DATE').val(); 
    var sDate = $('#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; 
}