जावास्क्रिप्ट में वर्तमान दिनांक कैसे प्राप्त करें: Stack Overflow के लोकप्रिय प्रश्न का विश्लेषण
\n\nयदि आप अभी वेब डेवलपमेंट में अपनी यात्रा शुरू कर रहे हैं, तो देर-सबेर आपके सामने एक कार्य आएगा: पेज पर वर्तमान दिनांक प्रदर्शित करना। यह कितना आसान लगता है? लेकिन, जैसा कि Stack Overflow के आंकड़े बताते हैं, प्रश्न "How do I get the current date in JavaScript?" हर महीने हजारों बार देखा जाता है। क्यों? क्योंकि सरल शब्दों के पीछे कई बारीकियाँ छिपी होती हैं: आउटपुट प्रारूप से लेकर समय क्षेत्र के साथ काम करने तक।
\n\nइस लेख में, हम केवल तैयार कोड नहीं देंगे। हम इसका गहराई से विश्लेषण करेंगे, प्रारूपों को नियंत्रित करना सीखेंगे और उन सामान्य गलतियों से बचेंगे जिनमें शुरुआती फंस जाते हैं। चलिए शुरू करते हैं!
\n\nपरिचय: Date ऑब्जेक्ट — आपका मुख्य उपकरण
\n\nजावास्क्रिप्ट में "आज दिखाएँ" जैसा कोई विशेष कमांड नहीं है। इसके बजाय, भाषा एक शक्तिशाली लेकिन कभी-कभी मुश्किल ऑब्जेक्ट Date प्रदान करती है। वर्तमान समय प्राप्त करने के लिए, बिना किसी तर्क के एक नया इंस्टेंस बनाना पर्याप्त है:
const now = new Date();\nconsole.log(now); // आउटपुट: Tue Oct 15 2024 14:30:00 GMT+0300\n\nयह कितना आसान है! लेकिन आइए देखें कि हमें वास्तव में क्या मिला। कंसोल में आपको कुछ इस तरह दिखेगा Tue Oct 15 2024 14:30:00 GMT+0300। यह मानव-पठनीय प्रारूप है, लेकिन यह हमेशा वास्तविक कार्यों के लिए उपयुक्त नहीं होता है। कल्पना करें कि आप एक ऑनलाइन स्टोर बना रहे हैं और ऑर्डर की तारीख "15.10.2024" के रूप में दिखाना चाहते हैं — ऐसा "मूल" आउटपुट काम नहीं करेगा।
बात यह है कि Date ऑब्जेक्ट 1 जनवरी 1970 (Unix युग) से गुज़रे मिलीसेकंड को संग्रहीत करता है। और हम कंसोल में जो देखते हैं वह स्ट्रिंग में अंतर्निहित रूपांतरण का परिणाम है। प्रारूप पर नियंत्रण पाने के लिए, हमें ऑब्जेक्ट के तरीकों का उपयोग करना होगा।
दिनांक घटकों को निकालने की विधियाँ
\n\nकल्पना करें कि दिनांक एक पिज़्ज़ा है जिसे टुकड़ों में काटा जाना है: वर्ष, महीना, दिन, घंटे, मिनट, सेकंड। Date ऑब्जेक्ट में प्रत्येक टुकड़े के लिए विशेष "चाकू" — विधियाँ हैं।
ये हैं सबसे लोकप्रिय विधियाँ:
\n\n- \n
getFullYear()— वर्ष लौटाता है (उदाहरण: 2024)। \n getMonth()— 0 से 11 तक महीना लौटाता है। ध्यान दें: जनवरी 0 है, दिसंबर 11 है। यह एक सामान्य जाल है! \n getDate()— महीने का दिन लौटाता है (1-31)। \n getDay()— सप्ताह का दिन 0 (रविवार) से 6 (शनिवार) तक लौटाता है। \n getHours(),getMinutes(),getSeconds()— स्पष्ट रूप से, घंटे, मिनट, सेकंड। \n
आइए इनसे अपनी दिनांक बनाएँ:
\n\nconst now = new Date();\nconst year = now.getFullYear();\nconst month = now.getMonth() + 1; // +1, क्योंकि जनवरी = 0\nconst day = now.getDate();\nconst hours = now.getHours();\nconst minutes = now.getMinutes();\n\nconsole.log(`${day}.${month}.${year} ${hours}:${minutes}`);\n// आउटपुट: "15.10.2024 14:30"\n\nध्यान दें: हमने महीने में +1 जोड़ा। यह शुरुआती लोगों की एक क्लासिक गलती है — शून्य से शुरू होने वाली संख्या को भूल जाना। एक बार और हमेशा के लिए याद रखें: getMonth() जनवरी के लिए 0 लौटाता है।
\n\nसुंदर आउटपुट: दिनांक स्वरूपण
\n\nस्ट्रिंग को मैन्युअल रूप से बनाना समझने के लिए अच्छा है, लेकिन अधिक सुरुचिपूर्ण तरीके भी हैं। जावास्क्रिप्ट स्वरूपण के लिए कई अंतर्निहित विधियाँ प्रदान करता है:
\n\n1. toLocaleDateString() — स्थानीयकृत आउटपुट के लिए
\n\nयह विधि क्षेत्रीय सेटिंग्स के अनुसार समायोजित होती है। हिंदी में चाहिए? जी हाँ:
\n\nconst now = new Date();\nconsole.log(now.toLocaleDateString('hi-IN')); // "15/10/2024"\nconsole.log(now.toLocaleDateString('en-US')); // "10/15/2024"\nconsole.log(now.toLocaleDateString('de-DE')); // "15.10.2024"\n\nआप विकल्पों के साथ एक ऑब्जेक्ट पास करके अपनी आवश्यकताओं के अनुसार प्रारूप को भी अनुकूलित कर सकते हैं:
\n\nconst options = {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n weekday: 'long'\n};\nconsole.log(now.toLocaleDate