TypeScript में दिनांकों के साथ कार्य: लाइब्रेरीज़ का अवलोकन
दिनांकों के साथ कार्य वेब डेवलपमेंट में सबसे सामान्य कार्यों में से एक है। TypeScript (और JavaScript) में बिल्ट-इन Date ऑब्जेक्ट की सीमित क्षमताएँ और एक असुविधाजनक API है। सौभाग्य से, ऐसी कई लाइब्रेरीज़ मौजूद हैं जो दिनांकों के फ़ॉर्मेटिंग, पार्सिंग, तुलना और हेरफेर को सरल बनाती हैं। इस लेख में, हम चार लोकप्रिय लाइब्रेरीज़: date-fns, Day.js, Luxon और Moment.js पर विचार करेंगे, और TypeScript में उनके उपयोग के उदाहरण दिखाएंगे।
1. date-fns — मॉड्यूलर और हल्की
date-fns एक आधुनिक लाइब्रेरी है, जो मॉड्यूलरिटी के सिद्धांत पर बनी है। आप केवल उन फ़ंक्शन को इम्पोर्ट करते हैं जिनकी आवश्यकता है, जो बंडल के आकार को न्यूनतम रखने में मदद करता है। date-fns बॉक्स से बाहर TypeScript का उत्कृष्ट समर्थन करता है।
स्थापना:
npm install date-fns# याyarn add date-fnsउपयोग के उदाहरण:
import { format, addDays, differenceInDays, parseISO } from 'date-fns';
// फ़ॉर्मेटिंगconst today = new Date();console.log(format(today, 'yyyy-MM-dd')); // 2025-03-15
// दिन जोड़नाconst future = addDays(today, 10);console.log(format(future, 'dd.MM.yyyy')); // 25.03.2025
// दिनांकों के बीच अंतरconst start = parseISO('2025-01-01');const end = parseISO('2025-03-15');console.log(differenceInDays(end, start)); // 73
// सप्ताहांत की जाँचimport { isWeekend } from 'date-fns';console.log(isWeekend(new Date(2025, 2, 15))); // true (शनिवार)2. Day.js — Moment.js का हल्का विकल्प
Day.js एक न्यूनतम लाइब्रेरी (केवल 2 kB) है जिसका API Moment.js से बहुत मिलता-जुलता है। यह आदर्श है यदि आप Moment से माइग्रेट करना चाहते हैं, लेकिन बंडल का आकार कम करना चाहते हैं। Day.js टाइप्स के माध्यम से TypeScript का समर्थन करता है।
स्थापना:
npm install dayjs# याyarn add dayjsउपयोग के उदाहरण:
import dayjs from 'dayjs';import relativeTime from 'dayjs/plugin/relativeTime';import utc from 'dayjs/plugin/utc';
dayjs.extend(relativeTime);dayjs.extend(utc);
// निर्माण और फ़ॉर्मेटिंगconst now = dayjs();console.log(now.format('DD/MM/YYYY HH:mm')); // 15/03/2025 14:30
// सापेक्ष समयconsole.log(dayjs('2025-03-10').fromNow()); // 5 days ago
// UTC के साथ कार्यconst utcDate = dayjs.utc('2025-03-15T12:00:00Z');console.log(utcDate.local().format('HH:mm')); // स्थानीय समय
// हेरफेरconst nextMonth = dayjs().add(1, 'month');console.log(nextMonth.format('MMMM YYYY')); // April 20253. Luxon — शक्तिशाली और आधुनिक
Luxon Moment.js का उत्तराधिकारी है, जिसे उसी टीम द्वारा विकसित किया गया है। यह नेटिव DateTime ऑब्जेक्ट का उपयोग करता है, टाइम ज़ोन, इंटरवल और ड्यूरेशन का समर्थन करता है। Luxon TypeScript में लिखा गया है और इसमें उत्कृष्ट टाइपिंग है।
स्थापना:
npm install luxon# याyarn add luxonउपयोग के उदाहरण:
import { DateTime, Interval, Duration } from 'luxon';
// निर्माण और फ़ॉर्मेटिंगconst dt = DateTime.now();console.log(dt.toFormat('yyyy LLL dd')); // 2025 Mar 15
// टाइम ज़ोनconst ny = DateTime.now().setZone('America/New_York');console.log(ny.toLocaleString(DateTime.DATETIME_FULL)); // March 15, 2025 at 9:30 AM EDT
// इंटरवलconst start = DateTime.fromISO('2025-01-01');const end = DateTime.fromISO('2025-03-15');const interval = Interval.fromDateTimes(start, end);console.log(interval.length('days')); // 73
// ड्यूरेशनconst dur = Duration.fromObject({ hours: 5, minutes: 30 });console.log(dur.toHuman()); // 5 hours, 30 minutes
// पार्सिंग पुस्तकालय में भी
PHP अनुप्रयोगों का कॉन्फ़िगरेशन: लाइब्रेरीज़ और दृष्टिकोण
TypeScript में कार्य शेड्यूलर: node-schedule लाइब्रेरी के लिए विस्तृत गाइड
JavaScript (Node.js) के लिए gRPC: लाइब्रेरीज़ और कोड उदाहरण
जावास्क्रिप्ट (Node.js) में तिथियों के साथ कार्य करना: सर्वश्रेष्ठ लाइब्रेरीज़
Rust में एप्लिकेशन कॉन्फ़िगरेशन: config और dotenv लाइब्रेरीज़