jQuery

2010-06-09 2 views
35

के साथ दो दिनांक मानों की तुलना कैसे करें मेरे पास दो स्ट्रिंग फ़ील्ड हैं जो मेरे पृष्ठ में तिथियों का प्रतिनिधित्व करते हैं और मैं इन दो क्षेत्रों की तुलना करना चाहता हूं ताकि यह पता चल सके कि मेरी पहली तारीख < दूसरी तारीख है या नहीं। मैं यह कैसे कर सकता हूँ?jQuery

<tr> 
    <td align="right">First Date: </td> 
    <td align="left"> <html:text name="addPublicationForm" styleId="firstDate" property="firstDate" maxlength="10"/></td> 
</tr> 
<tr> 
    <td align="right">Second Date: </td> 
    <td align="left"> <html:text name="addPublicationForm" styleId="secondDate" property="secondDate" maxlength="10"/></td> 
</tr> 

उत्तर

2

एक बार जब आप की तुलना में उन्हें आसान है (< ऑपरेटर का उपयोग करना) एक Date वस्तु में उन तार पार्स करने के लिए सक्षम हैं। तिथियों को पार्सिंग प्रारूप पर निर्भर करेगा। आप Datejs पर एक नज़र डाल सकते हैं जो इस कार्य को सरल बना सकता है।

+0

मैं 100% सही उत्तर के लिए jquery – Mercer

+0

+1 के सत्यापनकर्ता का उपयोग करना चाहता हूं। @downvote, कृपया यहां गलत क्या है इसके लिए हमें ज्ञान दें। – jAndy

+0

@ मेर्सर, आप किस वैधता के बारे में बात कर रहे हैं? क्या आप कुछ प्लगइन का जिक्र कर रहे हैं? –

23

आप भी jQuery ui उपयोग कर रहे हैं विशेष रूप से datepicker में, यदि आप एक जावास्क्रिप्ट Date वस्तु है, जो आप तो मानक < और >

+1

कोड से वापस 'दिनांक' ऑब्जेक्ट को 'Date.parse' (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/ का उपयोग करके मिलीसेकंड में परिवर्तित नहीं किया जाना चाहिए। तुलना करने से पहले ?sese? redirectlocale = en-US और redirectslug = जावास्क्रिप्ट% 2FReference% 2FGlobal_Objects% 2FDate% 2Fparse)? –

+0

डेट कन्स्ट्रक्टर (और डेट.परसे, वे समतुल्य हैं) के साथ डेट स्ट्रिंग का पार्सिंग ब्राउज़र अंतर और असंगतताओं के कारण दृढ़ता से निराश है: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date # Two_digit_years_map_to_1900 _-_ 1999 –

48
var startDt=document.getElementById("startDateId").value; 
var endDt=document.getElementById("endDateId").value; 

if((new Date(startDt).getTime() > new Date(endDt).getTime())) 
{ 
    ---------------------------------- 
} 
2

जांच का उपयोग कर की तुलना कर सकते में अपनी तिथि तार चालू करने के लिए उपयोग कर सकते हैं $.datepicker.parseDate(format, string) यहां प्रदान किया गया समाधान यह मदद कर सकता है, मैं इसे अपनी परियोजनाओं में उपयोग करता हूं। http://trentrichardson.com/examples/timepicker/

4

सिर्फ jQuery datepicker यूआई पुस्तकालय का उपयोग करें और दिनांक स्वरूप में दोनों अपने तार परिवर्तित (पेज के अंत में), तो आप आसानी से तुलना कर सकते हैं। नीचे दिए गए लिंक उपयोगी

https://stackoverflow.com/questions/2974496/jquery-javascript-convert-date-string-to-date

चियर्स हो सकता है .. !!

+0

यह लिंक क्यों लिंक नहीं किया गया है? यह * मान्य है। –

+0

क्योंकि उन्होंने हाइपरलिंक घोषित नहीं किया "http: //" –

6
var startDate = $('#start_date').val().replace('-','/'); 
var endDate = $('#end_date').val().replace('-','/'); 

if(startDate > endDate){ 
    // do your stuff here... 
} 
+0

क्या आप जानते हैं कि मेरा असफल क्यों हो रहा है? http://stackoverflow.com/questions/32015131/why-does-the-each-function-in-jquery-not-iterate – Si8

+1

दूसरा "-" प्रतिस्थापित नहीं किया गया है, कोशिश करें/-/g। – Bhimbim

+0

हैलो, यह फ़ंक्शन काम करेगा लेकिन ऊपर बताए गए अनुसार केवल एक हाइपन प्रतिस्थापित किया जाएगा ताकि आप var startDate = $ ('# start_date') का उपयोग कर सकें। वैल()। ('-', '/') को प्रतिस्थापित करें। बदलने के('-','/'); var endDate = $ ('# end_date')। वैल()। प्रतिस्थापित करें ('-', '/')। प्रतिस्थापित करें ('-', '/'); यदि (startDate> endDate) { // अपनी सामग्री यहां करें ... } –