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

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

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

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

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

\n

दिनांक और समय के साथ काम करना वेब डेवलपमेंट में सबसे आम और साथ ही सबसे जटिल कार्यों में से एक है। TypeScript में, सख्त टाइपिंग के कारण, हम दिनांकों में हेरफेर से संबंधित कई त्रुटियों से बच सकते हैं, लेकिन मानक Date ऑब्जेक्ट की कुछ सीमाएँ हैं। इस लेख में, हम दिनांक और समय के साथ काम करने के उन्नत दृष्टिकोणों पर विचार करेंगे, जिसमें आधुनिक लाइब्रेरीज़ का उपयोग, टाइपिंग, समय क्षेत्रों के साथ कार्य और जटिल प्रारूपों का पार्सिंग शामिल है।

\n\n

1. नेटिव Date की समस्याएँ और TypeScript के साथ उनका समाधान

\n

JavaScript में मानक Date जटिल संचालन के लिए अत्यंत असुविधाजनक है:

\n
    \n
  • परिवर्तनशीलता: setDate() जैसी विधियाँ मूल ऑब्जेक्ट को बदल देती हैं।
  • \n
  • फ़ॉर्मेटिंग का अभाव: "DD.MM.YYYY" प्रारूप में दिनांक प्रदर्शित करने का कोई अंतर्निहित तरीका नहीं है।
  • \n
  • समय क्षेत्रों के साथ कमजोर कार्य: Date समय को UTC में संग्रहीत करता है, जबकि getHours() विधियाँ स्थानीय समय लौटाती हैं।
  • \n
  • पार्सिंग में समस्याएँ: new Date("2023-01-01") विभिन्न ब्राउज़रों में अलग-अलग तरीके से व्याख्या की जा सकती है।
  • \n
\n

TypeScript हमें रैपर और उपयोगिताएँ बनाने की अनुमति देकर मदद करता है। उदाहरण के लिए, हम फ़ॉर्मेटिंग के लिए सख्त प्रकार परिभाषित कर सकते हैं:

\n
type DateFormat = 'DD.MM.YYYY' | 'YYYY-MM-DD' | 'HH:mm:ss';\n\nfunction formatDate(date: Date, format: DateFormat): string {\n  const day = String(date.getDate()).padStart(2, '0');\n  const month = String(date.getMonth() + 1).padStart(2, '0');\n  const year = date.getFullYear();\n  const hours = String(date.getHours()).padStart(2, '0');\n  const minutes = String(date.getMinutes()).padStart(2, '0');\n  const seconds = String(date.getSeconds()).padStart(2, '0');\n\n  switch (format) {\n    case 'DD.MM.YYYY':\n      return `${day}.${month}.${year}`;\n    case 'YYYY-MM-DD':\n      return `${year}-${month}-${day}`;\n    case 'HH:mm:ss':\n      return `${hours}:${minutes}:${seconds}`;\n    default:\n      return '';\n  }\n}\n\n// उपयोग\nconst now = new Date();\nconsole.log(formatDate(now, 'DD.MM.YYYY')); // "15.10.2023"\n
\n

यह दृष्टिकोण सुनिश्चित करता है कि हम फ़ंक्शन में गलत प्रारूप नहीं भेजेंगे, क्योंकि TypeScript संकलन चरण में प्रकार की जाँच करेगा।

\n\n

2. date-fns लाइब्रेरी का उपयोग: स्वच्छता और कार्यक्षमता

\n

date-fns दिनांकों के साथ काम करने के लिए एक आधुनिक लाइब्रेरी है, जो TypeScript के लिए पूरी तरह उपयुक्त है। इसके मुख्य लाभ:

\n
    \n
  • अपरिवर्तनीयता: सभी फ़ंक्शन मूल ऑब्जेक्ट को बदले बिना नए ऑब्जेक्ट लौटाते हैं।
  • \n
  • मॉड्यूलरिटी: आप केवल आवश्यक फ़ंक्शन आयात करते हैं, जिससे बंडल का आकार कम होता है।
  • \n
  • टाइपिंग: लाइब्रेरी में TypeScript के लिए अंतर्निहित समर्थन है।
  • \n
\n

स्थापना:

\n
npm install date-fns
\n

उन्नत उपयोग के उदाहरण:

\n
import { format, addDays, differenceInDays, isWeekend, parseISO } from 'date-fns';\n\n// फ़ॉर्मेटिंग\nconst date = new Date(2023, 9, 15); // 15 अक्टूबर 2023\nconsole.log(format(date, 'dd.MM.yyyy')); // "15.10.2023"\nconsole.log(format(date, 'EEEE, MMMM do yyyy')); // "Sunday, October 15th 2023"\n\n// अंकगणित\nconst nextWeek = addDays(date, 7);\nconsole.log(format(nextWeek, 'dd.MM.yyyy')); // "22.10.2023"\n\n// दिनांकों के बीच अंतर\nconst startDate = new Date(2023, 0, 1);\nconst endDate = new Date(2023, 11, 31);\nconst diff = differenceInDays(endDate, startDate);\nconsole.log(diff); // 364\n\n// सप्ताहांत की जाँच\nconsole.log(isWeekend(date)); // true (रविवार)\n\n// ISO स्ट्रिंग का पार्सिंग\nconst parsed = parseISO("2023-10-15T10:30:00Z");\nconsole.log(format(parsed, 'HH:mm')); // "13:30" (समय क्षेत्र के अनुसार)\n
\n

महत्वपूर्ण: date-fns Date ऑब्जेक्ट के साथ काम करता है, इसलिए

ब्लॉग

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