2010-05-02 11 views
18

संभव डुप्लिकेट:
Compare 2 dates with JavaScriptजावास्क्रिप्ट तिथि तुलना

मैं बहुत जावास्क्रिप्ट नहीं किया है। मैं दो तिथियों की तुलना करने की कोशिश कर रहा हूं। Jconsole से:

a = ["01/01/2010","01/02/2010","01/03/2010"] 

date1 = new Date('01/02/2010') 
Sat Jan 02 2010 00:00:00 GMT-0800 (PST) 

date2 = new Date(a[1]) 
Sat Jan 02 2010 00:00:00 GMT-0800 (PST) 

date1 == date2 
false 

क्या कोई मुझे बता सकता है कि यह क्यों मेल नहीं खाता है?

+7

यह नोट करना दिलचस्प है कि दोनों '> =' और '<=' 'वापसी में TRUE' इस मामले में, लेकिन '==' 'झूठा 'देता है। एक और जावास्क्रिप्ट चमत्कार। – Kobi

उत्तर

38

आपकी तुलना झूठी वापसी कर रही है क्योंकि date1 और date2 विभिन्न वस्तुओं के संदर्भ में हैं, और आप वास्तव में इन संदर्भों की तुलना कर रहे हैं।

दिनांक मानों का एक उचित तुलना करने के लिए, आप के रूप में निम्नानुसार getTime() विधि का उपयोग कर सकते हैं:

date1.getTime() === date2.getTime(); // returns true 
+1

ठीक है धन्यवाद। तो '===' प्रकार की तुलना भी करता है। क्या '<=' and '> =' प्रकार की तुलना भी करें? – user290870

+1

@ ash34: हां आमतौर पर '==' ''==' के बजाय '===' का उपयोग करने की अनुशंसा की जाती है। आप यह संदर्भ भी देखना चाहेंगे: https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Comparison_Operators। सबसे पहले उस हिस्से को नोट करें जहां यह कहता है: "यदि वे एक ही ऑब्जेक्ट को संदर्भित करते हैं तो दो वस्तुएं सख्ती से बराबर होती हैं।" ... विभिन्न तुलना ऑपरेटर का विवरण भी देखें। –

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