TypeScript में दिनांक और समय के साथ कार्य: A से Z तक

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: TypeScript में दिनांक के साथ कार्य पर विशेष ध्यान क्यों आवश्यक है

\n\n

दिनांक और समय के साथ कार्य करना वेब डेवलपमेंट में सबसे सामान्य और साथ ही सबसे कपटी कार्यों में से एक है। TypeScript में, जो JavaScript का एक सख्ती से टाइप किया गया सुपरसेट है, Date ऑब्जेक्ट को अपने पूर्वज की सभी "विशेषताएं" विरासत में मिली हैं: गैर-सहज ज्ञान वाले महीने (शून्य से गिनती), विधियों की परिवर्तनशीलता और समय क्षेत्रों से संबंधित समस्याएं। हालांकि, सख्त टाइपिंग और आधुनिक लाइब्रेरीज़ का उपयोग करके, आप समय के साथ कार्य करने के लिए सुरक्षित, पूर्वानुमानित और पढ़ने योग्य कोड लिख सकते हैं।

\n\n

इस लेख में, हम वह सब कुछ कवर करेंगे जो एक डेवलपर को जानना चाहिए: बुनियादी दिनांक निर्माण से लेकर टाइमज़ोन और फ़ॉर्मेटिंग के साथ उन्नत कार्य तक। आप सीखेंगे कि सामान्य गलतियों से कैसे बचें और TypeScript प्रोजेक्ट्स के लिए कौन से उपकरण (अंतर्निहित और तृतीय-पक्ष) सबसे उपयुक्त हैं।

\n\n

1. मूल बातें: Date ऑब्जेक्ट और TypeScript में इसकी टाइपिंग

\n\n

निर्माण और बुनियादी विधियाँ

\n\n

TypeScript में, JavaScript की तरह ही, दिनांक के साथ कार्य करने के लिए अंतर्निहित Date ऑब्जेक्ट का उपयोग किया जाता है। TypeScript इसके लिए तैयार प्रकार प्रदान करता है, इसलिए किसी अतिरिक्त परिभाषा की आवश्यकता नहीं है।

\n\n
// वर्तमान दिनांक बनाना\nconst now: Date = new Date();\nconsole.log(now); // 2024-01-15T10:30:00.000Z\n\n// स्ट्रिंग से निर्माण (ISO 8601)\nconst specificDate: Date = new Date('2024-12-31T23:59:59');\n\n// घटकों से निर्माण (वर्ष, महीना [0-11], दिन, घंटे...)\nconst birthday: Date = new Date(1990, 0, 15); // 15 जनवरी 1990\n// ध्यान दें: महीना 0 = जनवरी!
\n\n

परिवर्तनशीलता की समस्या

\n\n

Date ऑब्जेक्ट की विधियाँ मूल ऑब्जेक्ट को बदल देती हैं। इससे अप्रत्याशित बग हो सकते हैं। TypeScript टाइप स्तर पर इसे रोक नहीं सकता, लेकिन आप अपरिवर्तनीय दृष्टिकोण का उपयोग कर सकते हैं।

\n\n
const date = new Date('2024-01-01');\ndate.setDate(date.getDate() + 5); // परिवर्तन! अब date 6 जनवरी है\n// बेहतर है एक नया ऑब्जेक्ट बनाना:\nconst newDate = new Date(date.getTime() + 5 * 24 * 60 * 60 * 1000);
\n\n

Unix Timestamp की टाइपिंग

\n\n

अक्सर दिनांक संख्याओं (1970 से मिलीसेकंड) के रूप में पास किए जाते हैं। स्पष्टता के लिए type alias का उपयोग करें:

\n\n
type UnixTimestamp = number;\n\nfunction formatTimestamp(ts: UnixTimestamp): string {\n  return new Date(ts).toISOString();\n}\n\nconst myTimestamp: UnixTimestamp = 1705315200000;\nconsole.log(formatTimestamp(myTimestamp));
\n\n

2. दिनांक फ़ॉर्मेटिंग और पार्सिंग

\n\n

अंतर्निहित फ़ॉर्मेटिंग विधियाँ

\n\n

JavaScript स्थानीयकृत आउटपुट के लिए बुनियादी विधियाँ प्रदान करता है। TypeScript में ये "बॉक्स से बाहर" काम करती हैं:

\n\n
const date = new Date('2024-06-15T14:30:00');\n\n// स्थानीयकृत स्ट्रिंग्स\nconsole.log(date.toLocaleDateString('hi-IN')); // "15/6/2024"\nconsole.log(date.toLocaleTimeString('en-US')); // "2:30:00 PM"\nconsole.log(date.toLocaleString('de-DE'));     // "15.6.2024, 14:30:00"\n\n// ISO-स्ट्रिंग (API के लिए सुविधाजनक)\nconsole.log(date.toISOString()); // "2024-06-15T11:30:00.000Z" (हमेशा UTC)
\n\n

स्ट्रिंग पार्सिंग: खतरे

\n\n

new Date(str) कंस्ट्रक्टर के माध्यम से स्ट्रिंग पार्स करने से विभिन्न ब्राउज़रों में अप्रत्याशित परिणाम मिल सकते हैं। स्पष्ट जाँच के साथ Date.parse() या तृतीय-पक्ष लाइब्रेरीज़ का उपयोग करना बेहतर है।

\n\n
// अविश्वसनीय तरीका\nconst parsed = new Date('2024/01/15'); // अस्थिर रूप से काम कर सकता है\n\n// विश्वसनीय तरीका: ISO 8601\nconst safeParse = (dateStr: string): Date | null => {\n  const ts = Date.parse(dateStr);\n  return isNaN(ts) ? null : new Date(ts);\n};\n\nconst result = safeParse('2024-01-15T10:00:00Z');\nif (result) {\n  console.log(result.toISOString());\n}
\n\n

3. उन्नत हेरफेर और तुलना

\n\n

दिनांक तुलना

\n\n

दिनांकों की तुलना सीधे तुलना ऑपरेटरों के माध्यम से की जा सकती है, लेकिन सटीक तुलना (समानता) के लिए संख्या में बदलना आवश्यक है:

\n\n
const date1 = new Date('2024-01-01');\nconst date2 = new Date('2024-01-0                

ब्लॉग

पुस्तक अनुशंसाएँ