कोडिंग समस्याओं को हल करते समय हम एक चीज कर सकते हैं वह है Date ऑब्जेक्ट का उपयोग करके तारीखों और समय की तुलना करना ताकि हम अपने कोड में कुछ लॉजिक को सशर्त रूप से रेंडर कर सकें। यह आर्टिकल इस बात पर नज़र डालता है कि दो तारीखों की तुलना करने के लिए Date ऑब्जेक्ट का उपयोग कैसे करें ताकि यह देखा जा सके कि कौन सी बाद की (या पहले की) तारीख है।
सेटअप
JavaScript में एक बिल्ट-इन Date ऑब्जेक्ट है जिसका उपयोग हम टाइमस्टैम्प्स के आधार पर लॉजिक करने में हमारी सहायता करने में सक्षम मेथड्स तक पहुंचने के लिए कर सकते हैं। इसे सेट करने के लिए, निम्न कोड करके एक नया Date इंस्टेंटिएट करें:
const date = new Date("09-20-2020"); // 2020-09-20T07:00:00.000Z
यदि आप console.log(date) इनपुट करते, तो समय (T के बाद का सबस्ट्रिंग) डिफ़ॉल्ट रूप से इस आधार पर भिन्न होगा कि आप कहां रहते हैं। यदि आप UTC समय के साथ काम करना चाहते हैं, तो Z को हटा दें और इसके बजाय +HH:MM या -HH:MM जोड़ें।
यह जानना महत्वपूर्ण है कि इसे कैसे सेट किया जाए जब हम अगले सेक्शन में अपनी तुलना फंक्शन पर काम करते हैं।
इसके बाद, Date कंस्ट्रक्टर का उपयोग करते समय हमें दिए जाने वाले मेथड्स पर एक नज़र डालें। ऐसा एक मेथड getTime() है। हम इस मेथड का उपयोग अपने Date ऑब्जेक्ट को एक संख्या में बदलने के लिए करते हैं ताकि इसकी आसानी से तुलना की जा सके।
यह विशेष मेथड तारीख को 1 जनवरी, 1970 से मिलीसेकंड की संख्या में बदल देता है (युग 1 जनवरी, 1970 को शुरू हुआ)। यहां हमारा getTime मेथड है:
const date = new Date("09-20-2020");
date.getTime(); // 1600585200000
क्योंकि तारीख को एक नए Date ऑब्जेक्ट के रूप में इंस्टेंटिएट किया गया है, हम डॉट नोटेशन का उपयोग करके getTime फंक्शन को एक्सेस कर सकते हैं।
मैं Date ऑब्जेक्टर पर उपयोग किए जा सकने वाले विभिन्न प्रकार के मेथड्स के लिए डॉक्यूमेंटेशन देखने की सलाह देता हूं। हम अब अपने प्रॉम्प्ट से निपटने के लिए तैयार हैं।
प्रॉम्प्ट
दो स्ट्रिंग्स और एक तुलना ऑपरेटर दिए गए हैं, एक तारीख लौटाएं जो ऑपरेटर के आधार पर या तो सबसे कम या सबसे बड़ी हो। यह गारंटी है कि पास की गई दो स्ट्रिंग्स को Date ऑब्जेक्ट में बदला जा सकता है।
हल करने के चरण
- दोनों स्ट्रिंग्स को नए Date ऑब्जेक्ट्स में बदलें। अपने Date कंस्ट्रक्टर में पैरामीटर्स कैसे पास करें, इसकी जांच करना न भूलें!
getTime()मेथड का उपयोग करके मिलीसेकंड की संख्या बनाएं जो 1 जनवरी, 1970 से बीत चुकी है।- पास किए गए तुलना ऑपरेटर द्वारा इंगित आवश्यक तारीख का पता लगाने के लिए एक सशर्त स्टेटमेंट या टर्नरी का उपयोग करें।
- मिलीसेकंड को एक पठनीय तारीख स्ट्रिंग में बदलें और इसे लौटाएं।
समाधान देखने से पहले इसे स्वयं हल करने का प्रयास करें!
पूर्ण कार्यान्वयन उदाहरण
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<style>
body { font-family: 'Roboto', Courier, monospace }
</style>
</head>
<body>
<h1>Date Comparison</h1>
<label for="comparison">Comparison (Choose One)</label>
<div id="comparison" value="more.value">
<input name="compare" type="radio" id="less" value=""/>
<label for="less"> < </label>
<input name="compare" type="radio" id="more" checked value=""/>
<label for="more"> >= </label>
</div>
<br/>
<label for="date-1">Date 1:</label>
<input id="date-1" value="" type="date" name="date1" />
<label for="date-2">Date 2:</label>
<input id="date-2" value="" type="date" name="date2" />
<input id="submit-button" type="submit" />
<div id="demo"></div>
<script>
const handleSubmit = (date1, date2, compare) => {
// तुलना करने के लिए: प्रत्येक तारीख का getTime
date1Arr = date1.split("-");
date2Arr = date2.split("-");
// वर्ष, महीना (महीना जीरो-बेस्ड है), दिन
let d1 = new Date(date1Arr[0], date1Arr[1] - 1, date1Arr[2]).getTime();
let d2 = new Date(date2Arr[0], date2Arr[1] - 1, date2Arr[2]).getTime();
// getTime 1 जनवरी 1970 से मिलीसेकंड की संख्या प्राप्त करता है। तो संख्या जितनी अधिक होगी, तारीख उतनी ही बाद की होगी।
// तुलना ऑपरेटर द्वारा इंगत तुलना लौटाने के लिए सशर्त या टर्नरी का उपयोग करें
let timeDisplay;
if(compare === ">=") {
timeDisplay = d1 >= d2 ? d1 : d2;
} else {
timeDisplay = d1 < d2 ? d1 : d2;
}
let timetoDisplay = new Date(timeDisplay);
document.getElementById("demo").innerHTML = timetoDisplay.toDateString();
}
let date_1 = document.getElementById("date-1");
let date_2 = document.getElementById("date-2");
document.getElementById("submit-button").addEventListener("click", (e) => handleSubmit(date_1.value, date_2.value, more.checked ? '>=' : '<'))
</script>
</body>
</html>
JavaScript में तारीखें पहली बार में भ्रमित करने वाली हो सकती हैं, लेकिन थोड़े अभ्यास के साथ, आप इसे कुछ ही समय में समझ जाएंगे। यहां, हमने देखा कि JavaScript में एक नई तारीख कैसे सेट करें और उसके कंस्ट्रक्टर पर एक मेथड एक्सेस करें। हमने यह भी देखा कि पास किए गए ऑपरेटर के आधार पर दो तारीखों की तुलना कैसे करें ताकि यह देखा जा सके कि कौन सी सबसे बड़ी या सबसे छोटी थी।
एक बार जब आप इस पर पकड़ बना लेते हैं, तो मैं यह देखने की सलाह देता हूं कि सरणी में आइटम्स को उनके द्वारा सरणी में जोड़े गए तारीख के अनुसार कैसे सॉर्ट करें, आरोही या अवरोही। मज़े करें और लगे रहें!