2011-09-07 23 views
13

javascript/jquery ile DD olarak 2 tarih/AA/YYYY karşılaştırın DD/MM/YYYYBen formatında datepicker eklentisi iki alma tarihleri ​​varsayalım

var date1 = '25/02/1985'; /*february 25th*/ 
var date2 = '26/02/1985'; /*february 26th*/ 
/*this dates are results form datepicker*/ 

    if(process(date2) > process(date1)){ 
      alert(date2 + 'is later than ' + date1); 
    } 

ne gerektiği gibi bu fonksiyon görünüyor?

function process(date){ 
    var date; 
    // Do something 
    return date; 
} 
+0

Tarih seçicinizin gerçek javascript 'Date' nesnelerini döndürmediğinden emin misiniz? Eğer öyleyse, sadece onları karşılaştırabilirsiniz. – Jamiec

cevap

19

"/" Böl ve Date constructor kullanın.

function process(date){ 
    var parts = date.split("/"); 
    return new Date(parts[2], parts[1] - 1, parts[0]); 
} 
+1

Bu yaklaşım, yayınlandığımdan daha iyi çalışır çünkü bir tarih nesnesine dönüştürüldüğünde 1/1/2000 gibi tarihlerin varsayılan olarak aa/gg/yyyy biçiminde varsayılan olduğundan şüpheleniyorum. Senin için +1 efendim. – Maxx

+0

yeni dönmelidir Tarih (parçalar [2], parçalar [1] +1, parçalar [0]); –

+3

Hayır, javascript tarihinin ay bileşeni sıfır tabanlı. Parçaların [1] + 1'inin yanı sıra 1'i bir dizge haline getirebilir ve parçaların [1] dizgisinin sonuna ekleyiniz. – InvisibleBacon

6
function process(date){ 
    var parts = date.split("/"); 
    var date = new Date(parts[1] + "/" + parts[0] + "/" + parts[2]); 
    return date.getTime(); 
} 
5

Daha kolay olabilir: dışarı fazla ayrıntı check this için

var date1 = '25/02/1985'; /*february 25th*/ 
var date2 = '26/02/1985'; /*february 26th*/ 

if ($.datepicker.parseDate('dd/mm/yy', date2) > $.datepicker.parseDate('dd/mm/yy', date1)) { 

     alert(date2 + 'is later than ' + date1); 

} 

. Teşekkürler.

İlgili konular