2016-04-19 3 views
1

Ich habe versucht, zwei Tage zu vergleichen und eine Warnung zurückgeben, wenn das Startdatum höher als das Enddatum ist. Ich weiß nicht warum, aber wenn ich 19.04.2016 als Startdatum und 01.05.2016 als Enddatum wähle, erhalte ich die Warnung.jQuery Datepicker Wert des Tages in der Zukunft

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) 

Können Sie herausfinden, warum?

Thanks :)

Antwort

1

Wenn Sie date1 und date2 setzen, erhalten Sie Zeichenfolge, nicht Datum.

Für get Datum von Datepicker können Sie:

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

Dann können Sie vergleichen:

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

Perfekt danke :) – domihein

0

die Termine von der datepicker Sie benötigen zu bekommen: -

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

Sie sie zurück bekommen als Strings statt Daten zu vergleichen.

0

Du das Datum Strings zu vergleichen. Daher ist die Zeichenfolge "19.04.2016" größer als "01.05.2016". Wenn Sie die Strings im Datepicker ISO 8601 format"yy-mm-dd" formatieren, sollten die Strings korrekt miteinander verglichen werden. Der bessere Weg ist es, getDate wie die anderen vorgeschlagen haben.

Verwandte Themen