2016-04-19 64 views
1

如果startdate高於enddate,我試圖比較兩天並返回一個警報。我不知道爲什麼,但是如果我選擇19.04.2016作爲startdate和01.05.2016作爲結束日期,我會收到警報。jQuery datepicker將來的日期值

var main = function() { 
       var date1 = ""; 
       var date2 = ""; 
       $('h1').click(function() { 
        $('h1').remove(); 
      }) 

$('#date-start').datepicker({ 
    dateFormat: "dd.mm.yy", 
    minDate: new Date(), 
    onSelect: function(date) { 

     var startdate = $('#date-start').datepicker('getDate'); 
     $('#date-end').datepicker('option','minDate',startdate); 
    } 
}) 
$('#date-end').datepicker({ 
     dateFormat: "dd.mm.yy" 
}) 

$('#btn').click(function() { 
    date1 = $('#date-start').val(); 
    date2 = $('#date-end').val(); 

    if (date1 > date2) { 
     alert("Beginn muss vor dem Ende liegen"); 
     $('#date-start').css("border-color","red"); 
     $('#date-end').css("border-color","red"); 
    } 
    if (date1 == "") { 
     alert("Bitte alle Felder ausfüllen"); 
     $('#date-start').css("border-color","red"); 
     $('#date-end').css("border-color","red"); 
    } 

    document.getElementById("compare-date-text1").innerHTML = date1; 
    document.getElementById("compare-date-text2").innerHTML = date2; 
}) 
} 

$(document).ready(main) 

你能弄清楚爲什麼嗎?

謝謝:)

回答

1

當你設置date1date2你會得到字符串,而不是日期。

對於從日期選擇器獲取日期,你可以使用:

var date1 = new Date($('#date-start').datepicker('getDate')); 
var date2 = new Date($('#date-end').datepicker('getDate')); 

然後你就可以比較:

if (date1 > date2){.........} 
+0

完美謝謝:) – domihein

0

從中獲取日期的datepicker您需要: -

date1 = $('#date-start').datepicker("getDate"); 
date2 = $('#date-end').datepicker("getDate"); 

你把他們送回去作爲字符串來比較,而不是日期。

0

您比較日期。因此,字符串「19.04.2016」大於「01.05.2016」。如果您在Datepicker ISO 8601 format「yy-mm-dd」中格式化字符串,則字符串應該正確比較。更好的方法是像其他人所建議的那樣撥打getDate