क्षण में केवल तारीख की तुलना कैसे करें। js


107

मैं पल-पल के लिए नया हूं। जे.एस. मेरे पास एक दिनांक ऑब्जेक्ट है और इसके साथ कुछ समय जुड़ा हुआ है। मैं सिर्फ यह जाँचना चाहता हूं कि क्या यह तारीख आज की तारीख से अधिक या उसके बराबर है, जबकि तुलना करते समय।

 var dateToCompare = 2015-04-06T18:30:00.000Z

मैं बस यह जांचना चाहता हूं कि क्या आज की तारीख की तुलना में dateToCompare बराबर या अधिक है। मैंने जाँच की है। क्षण का नाम। Js, लेकिन यह स्ट्रिंग और केवल दिनांक भाग लगता है। लेकिन मैं अपनी तिथि को स्ट्रिंग में बदलना या उसमें हेरफेर नहीं करना चाहता। क्योंकि मुझे चिंता है कि जावास्क्रिप्ट उस तारीख को स्ट्रिंग में परिवर्तित करते समय कुछ अप्रत्याशित कर सकता है (जैसे ऑफसेट या डीएसटी को जोड़ना, आदि), या हो सकता है कि मैं गलत हूं।

डॉक्स से नमूना नाम () है

moment('2010-10-20').isSame('2010-10-20');

इसके अलावा, मैं कुछ ऐसा देख रहा हूँ जैसे नाम () और बाद में () एक बयान के रूप में संयुक्त है।

मुझे केवल क्षणों की तुलना करने की आवश्यकता है। कृपया केवल सादे जावास्क्रिप्ट तिथि तुलना की सलाह न दें।

जवाबों:


183

डॉक्स स्पष्ट हैं कि आप एक दूसरे पैरामीटर में ग्रैन्युलैरिटी को निर्दिष्ट करने के लिए पास करते हैं।

यदि आप मिलीसेकेंड के अलावा किसी इकाई के लिए ग्रैन्युलैरिटी को सीमित करना चाहते हैं, तो इकाइयों को दूसरे पैरामीटर के रूप में पास करें।

moment('2010-10-20').isAfter('2010-01-01', 'year'); // false
moment('2010-10-20').isAfter('2009-12-31', 'year'); // true

जैसा कि दूसरा पैरामीटर सटीक निर्धारित करता है, और न केवल जांचने के लिए एक मान है, दिन का उपयोग करके वर्ष, महीने और दिन की जांच करेगा।

आपके मामले के लिए आप 'day'दूसरे पैरामीटर के रूप में पास होंगे ।


1
धन्यवाद! ऐसा लगता है कि मुझे स्ट्रिंग में कनवर्ट करने की आवश्यकता नहीं है। लेकिन क्या हमारे पास isame () और isAfter () के लिए कोई सामान्य तरीका है
NoobGeek

2
मैंने पहले ही इसका इस्तेमाल कर लिया है। धन्यवाद! बस यह देखना चाहता था कि क्या कोई सामान्य कार्य है, नहीं कि दोनों का उपयोग करना मुश्किल है।
NoobGeek

@kabirbaidhya, बड़े आकार के अनचाहे संपादन करने से पहले, प्रश्नों और उत्तरों पर ध्यान देने योग्य मुद्दों पर टिप्पणी पोस्ट करने के लिए विनम्र माना जाता है। मुझे नहीं लगता कि आपके द्वारा किए गए संपादन आवश्यक थे, इसलिए मैंने उन्हें वापस ले लिया। यदि आपको लगता है कि जानकारी महत्वपूर्ण थी, तो कृपया अपना उत्तर पोस्ट करने पर विचार करें।
zzzzBov

4
बस पूरक करने के लिए: "जैसा कि दूसरा पैरामीटर सटीक निर्धारित करता है, और न केवल जांच करने के लिए एक मान है, दिन का उपयोग करके वर्ष, महीने और दिन की जांच करेगा।"
1

6
@NoobGeek अब संस्करण २.१०. from से संस्करण के बाद समसामयिकी () और isSameOrAfter () है।
व्हाइटहोटलवेटिगर


6

मेरे मामले में मैंने 2 तारीखों की तुलना के लिए कोड का पालन किया, इससे आपको मदद मिलेगी ...

var date1 = "2010-10-20";
var date2 = "2010-10-20";
var time1 = moment(date1).format('YYYY-MM-DD');
var time2 = moment(date2).format('YYYY-MM-DD');
if(time2 > time1){
	console.log('date2 is Greter than date1');
}else if(time2 > time1){
	console.log('date2 is Less than date1');
}else{
	console.log('Both date are same');
}
<script src="https://momentjs.com/downloads/moment.js"></script>


6

आप startOf('day')सिर्फ तारीख की तुलना करने के लिए विधि का उपयोग कर सकते हैं

उदाहरण :

var dateToCompare = moment("06/04/2015 18:30:00");
var today = moment(new Date());

dateToCompare.startOf('day').isSame(today.startOf('day'));
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.