2011-09-07 13 views
13

मान लीजिए मैं प्रारूप में datepicker प्लगइन से दो तिथियों प्राप्त जावास्क्रिप्ट/jQuery के साथ YYYY तुलना करें DD/MM/YYYYप्रारूप डीडी में 2 तारीखों/माह/

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); 
    } 

क्या करना चाहिए की तरह इस समारोह देखो?

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

क्या आप सुनिश्चित हैं कि आपका दिनांक पिकर वास्तविक जावास्क्रिप्ट 'दिनांक' ऑब्जेक्ट्स वापस नहीं कर रहा है? यदि ऐसा है तो आप उनकी तुलना कर सकते हैं। – Jamiec

उत्तर

19

"/" पर विभाजन और Date constructor का उपयोग करें।

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

यह दृष्टिकोण मैंने पोस्ट किए गए से बेहतर काम करेगा क्योंकि मुझे संदेह है कि दिनांक दिनांक में परिवर्तित होने पर 1/1/2000 जैसी कुछ तिथियां मिमी/डीडी/वाईय प्रारूप में डिफ़ॉल्ट होंगी। आपके लिए +1, महोदय। – Maxx

+0

इसे नई तारीख (भागों [2], भागों [1] +1, भागों [0]) वापस किया जाना चाहिए; –

+3

नहीं, जावास्क्रिप्ट दिनांक का महीना घटक शून्य-आधारित है। भागों के अलावा [1] + 1 एक स्ट्रिंग के रूप में 1 डालेगा और इसे भागों के अंत में जोड़ देगा [1] स्ट्रिंग .. – InvisibleBacon

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

इसे और अधिक आसान हो सकता है:

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); 

} 

अधिक जानकारी के check this बाहर के लिए। धन्यवाद।

संबंधित मुद्दे