TypeScript में तिथियों के साथ कार्य: date-fns, Luxon और Day.js लाइब्रेरीज़ का अवलोकन

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

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

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

TypeScript में तिथियों के साथ कार्य: सर्वश्रेष्ठ लाइब्रेरीज़ का अवलोकन

\n\n

TypeScript, JavaScript पर एक सख्ती से टाइप की गई परत होने के नाते, मूल Date में निहित तिथियों के साथ कार्य की सभी समस्याओं को विरासत में लेता है - गैर-सहज ज्ञान युक्त API, परिवर्तनशीलता, समय क्षेत्र और पार्सिंग की समस्याएं। सौभाग्य से, TypeScript पारिस्थितिकी तंत्र कई शक्तिशाली लाइब्रेरीज़ प्रदान करता है जो इन समस्याओं का समाधान करती हैं। इस लेख में, हम तीन सबसे लोकप्रिय उपकरणों पर विचार करेंगे: date-fns, Luxon और Day.js, उनकी क्षमताओं की तुलना करेंगे और व्यावहारिक कोड उदाहरण प्रस्तुत करेंगे।

\n\n

1. date-fns — मॉड्यूलर और कार्यात्मक

\n\n

date-fns एक लाइब्रेरी है जो कार्यात्मक प्रोग्रामिंग के सिद्धांतों पर बनी है। इसमें कई स्वतंत्र फ़ंक्शन शामिल हैं, जो आपको केवल वही आयात करने की अनुमति देते हैं जिसकी आवश्यकता है, और बंडल को फुलाए नहीं। यह मूल Date ऑब्जेक्ट के साथ काम करता है, जो एकीकरण को सरल बनाता है।

\n\n

मुख्य विशेषताएं:

\n
    \n
  • शुद्ध फ़ंक्शन: प्रत्येक फ़ंक्शन मूल ऑब्जेक्ट को बदले बिना एक नया ऑब्जेक्ट लौटाता है।
  • \n
  • मॉड्यूलरिटी: केवल आवश्यक फ़ंक्शन आयात करें (उदाहरण के लिए, import { format, addDays } from 'date-fns')।
  • \n
  • लोकेल समर्थन: रूसी सहित 50 से अधिक भाषाओं के लिए अंतर्निहित समर्थन।
  • \n
  • TypeScript: बॉक्स से बाहर उत्कृष्ट टाइपिंग।
  • \n
\n\n

date-fns के साथ कोड उदाहरण

\n\n

स्थापना:

\n
npm install date-fns
\n\n

तिथि स्वरूपण:

\n
import { format } from 'date-fns';\nimport { ru } from 'date-fns/locale';\n\nconst date = new Date(2024, 11, 25); // 25 दिसंबर 2024\nconst formatted = format(date, 'dd MMMM yyyy', { locale: ru });\nconsole.log(formatted); // "25 декабря 2024"
\n\n

तिथियों के साथ हेरफेर:

\n
import { addDays, subMonths, differenceInDays } from 'date-fns';\n\nconst today = new Date();\nconst future = addDays(today, 10);\nconst past = subMonths(today, 3);\nconst diff = differenceInDays(future, past);\nconsole.log(`अंतर: ${diff} दिन`);
\n\n

तिथियों की तुलना:

\n
import { isBefore, isAfter, isEqual } from 'date-fns';\n\nconst date1 = new Date(2024, 0, 1);\nconst date2 = new Date(2024, 6, 1);\nconsole.log(isBefore(date1, date2)); // true
\n\n

2. Luxon — शक्तिशाली और आधुनिक

\n\n

Luxon Moment.js के लेखकों में से एक की लाइब्रेरी है, जो इसकी कमियों को दूर करने के लिए बनाई गई है। Luxon अपने स्वयं के अपरिवर्तनीय ऑब्जेक्ट (DateTime, Duration) का उपयोग करता है, न कि मूल Date का। यह इसे समय क्षेत्रों और अंतरालों के साथ काम करने के लिए विशेष रूप से सुविधाजनक बनाता है।

\n\n

मुख्य विशेषताएं:

\n
    \n
  • अपरिवर्तनीयता: सभी विधियाँ नए उदाहरण लौटाती हैं।
  • \n
  • अंतर्निहित समय क्षेत्र समर्थन: बिना अतिरिक्त प्लगइन के।
  • \n
  • अंतर्राष्ट्रीयकरण: Intl API पर आधारित स्थानीयकरण।
  • \n
  • अंतराल और अवधियों के साथ कार्य: समय अंतराल की गणना के लिए सुविधाजनक विधियाँ।
  • \n
\n\n

Luxon के साथ कोड उदाहरण

\n\n

स्थापना:

\n
npm install luxon
\n\n

तिथि बनाना और स्वरूपण:

\n
import { DateTime } from 'luxon';\n\nconst dt = DateTime.fromISO('2024-12-25', { zone: 'Europe/Moscow' });\nconsole.log(dt.toFormat('dd.MM.yyyy HH:mm')); // "25.12.2024 00:00"\n\n// स्थानीयकृत आउटपुट\nconsole.log(dt.setLocale('ru').toFormat('d MMMM yyyy')); // "25 декабря 2024"
\n\n

समय क्षेत्रों के साथ कार्य:

\n
const nyTime = DateTime.now().setZone('America/New_York');\nconst moscowTime = nyTime.setZone('Europe/Moscow');\nconsole.log(`न्यूयॉर्क में: ${nyTime.toFormat('HH:mm')}, मास्को में: ${moscowTime.toFormat('HH:mm')}`);
\n\n

अवधियाँ और अंतराल:

\n
import { Duration, Interval } from 'luxon';\n\nconst dur = Durati                    

अनुशंसाएँ