2012-02-15 16 views
5

टाइमस्टैम्प को अनदेखा करने वाली दो तिथियों की तुलना करने का सबसे आसान तरीका क्या है। मुझे दो दिनांक firstDate डेटाबेस से आ रहा है (जावास्क्रिप्ट दिनांक में परिवर्तित) और secondDate दिनांक पिकर इनपुट फ़ील्ड से आ रहा है।
अनिवार्य रूप से के लिए मेरे एल्गोरिदम इन दो तिथियों के बराबर हैं क्योंकि यह टाइमस्टैम्प को ध्यान में नहीं लेता है लेकिन कोड इसे firstDate के बराबर नहीं मानता है, इसमें 01:00:00 है।
तुलना के लिए टाइमस्टैम्प को पूरी तरह से कैसे हटाया जाए?टाइमस्टैम्प मान को अनदेखा करते हुए जावास्क्रिप्ट दिनांक तुलना

firstDate:

मंगल मार्च 24 1992 01:00:00 GMT-0500 (सेंट्रल डेलाइट समय)

secondDate:

मंगल मार्च 24 1 99 2 00:00:00 जीएमटी-0500 (सेंट्रल डेलाइट टाइम)

कोड:

if(firstDate < secondDate) { 

     alert("This alert shouldn't pop out as dates are equal"); 
    } 

उत्तर

5

आप toDateString का उपयोग समय से छुटकारा पाने के लिए, और firstDate और secondDate चर के पुन: असाइन कि सकता है। एक बेहतर तरीका हो सकता है, लेकिन यह मेरे लिए दिमाग में आया था।

firstDate = new Date(firstDate.toDateString()); 
secondDate = new Date(secondDate.toDateString()); 
if(firstDate < secondDate){ 
    alert("This alert shouldn't pop out as dates are equal"); 
} 

इसके अलावा, आप सुनिश्चित करें कि आप तारीखों के मूल्यों की तुलना कर रहे हैं, और जाँच नहीं अगर वे एक ही वस्तु हैं जब आप तुलना यदि वे बराबर हैं बनाने के लिए चाहता हूँ। तो कुछ पसंद है।

firstDate.valueOf() == secondDate.valueOf() 

आप मेरी JSFiddle example भी देख सकते हैं।

+0

उत्तर के लिए डेरेक धन्यवाद। मेरे पास एक ही समाधान था कि क्या कोई और तरीका है। अगर किसी और ने जवाब नहीं दिया तो मैं आपका जवाब स्वीकार करूंगा। – user1195192

0

डेरेक का जवाब सही है। आरएफसी 3339 डेट स्ट्रिंग बनाने के लिए नई तारीख के उदाहरणों के बिना एक वैकल्पिक विधि है।

var firstDateStr = firstDate.toISOString().slice(0, 10); 
var secondDateStr = secondDate.toISOString().slice(0, 10); 

return (firstDateStr < secondDateStr); 
+0

मेरे उदाहरण में, मैं स्ट्रिंग की तुलना नहीं कर रहा हूं, बल्कि 'toDateString()' – derekaug

+0

Ah से परिणाम के साथ आरंभ की गई 'नई तिथि()' वास्तव में आप करते हैं। गलत, क्षमा करें। संपादन का जवाब – Deestan

3

दोनों तारीखें में आधी रात को दिन का समय निर्धारित करने के लिए सभी शून्य तर्क के साथ Date.setHours(hrs, mins, secs, ms) फ़ंक्शन का उपयोग करें (यदि आप अन्य प्रयोजनों के लिए समय के साथ तारीख की जरूरत है एक प्रतिलिपि बनाने)।

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