जावास्क्रिप्ट में तारीखों की स्ट्रिंग तुलना
मान लीजिए कि हमारे पास निम्नलिखित पाठ्य प्रारूप में दो तारीखें हैं:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
ऐसे में, इन तारीखों की तुलना करके यह पता लगाया जा सकता है कि इनमें से कौन सी तारीख बड़ी है:
console.log(date1 > date2); // true प्रिंट करेगा
इन तारीखों की तुलना कैसे होती है? बात यह है कि हमारी तारीखें स्ट्रिंग्स का प्रतिनिधित्व करती हैं और जावास्क्रिप्ट उनकी तुलना स्ट्रिंग्स के रूप में करता है। यानी, यह पहले दोनों तारीखों के पहले अक्षरों की तुलना करता है: यदि वे समान हैं, तो जावास्क्रिप्ट दूसरे अक्षरों की तुलना करता है, और इसी तरह आगे बढ़ता है, जब तक कि कोई अंतर नहीं मिल जाता। इस तथ्य के कारण कि हमारे प्रारूप में तारीख पहले वर्ष, फिर महीना, और फिर दिन के क्रम में होती है, ऐसी तुलना संभव है।
बात यह है कि यदि पहले वर्ष का अंक दूसरे वर्ष के अंक से बड़ा हो जाता है, तो इसका मतलब है कि अब महीनों और दिनों का कोई मतलब नहीं रह जाता - पहला वर्ष निश्चित रूप से बड़ा है। यदि वर्ष समान हैं, तो वह तारीख बड़ी होगी जिसका महीना बड़ा है। और यदि महीने भी समान हैं, तो वह तारीख बड़ी होगी जिसका दिन बड़ा है। खैर, और यदि दिन भी समान हैं, तो तारीखें बराबर हैं।
यह भी महत्वपूर्ण है कि तारीखें एक ही प्रारूप में हों। हमारे मामले में, तारीख के हिस्सों को अलग करने वाला चिन्ह हाइफन है। यह, निश्चित रूप से, जरूरी नहीं है। उदाहरण के लिए, डॉट्स लगाए जा सकते हैं:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
या विभाजकों को हटाया भी जा सकता है:
let date1 = '20201201';
let date2 = '20191201';
मुख्य बात यह है कि तुलना सही हो, निम्नलिखित क्रम होना चाहिए: पहले वर्ष, फिर महीना, फिर दिन।
एक कोड लिखें जो नीचे दी गई दो तारीखों की तुलना करे और यह संदेश प्रिंट करे कि कौन सी बड़ी है:
let date1 = '2020-11-30';
let date2 = '2020-12-01';