जावास्क्रिप्ट (Node.js) में तिथियों के साथ कार्य करने के लिए लाइब्रेरीज़ का अवलोकन
तिथियों के साथ कार्य करना वेब डेवलपमेंट में सबसे सामान्य और साथ ही सबसे जटिल कार्यों में से एक है। जावास्क्रिप्ट में मूल Date ऑब्जेक्ट में कई कमियाँ हैं: परिवर्तनशीलता, सीमित फ़ॉर्मेटिंग और पार्सिंग क्षमताएँ, समय क्षेत्रों से संबंधित समस्याएँ। सौभाग्य से, Node.js इकोसिस्टम कई शक्तिशाली लाइब्रेरीज़ प्रदान करता है जो तिथियों के हेरफेर को काफी सरल बनाती हैं। इस लेख में, हम उनमें से चार सबसे लोकप्रिय लाइब्रेरीज़ पर विचार करेंगे: Moment.js, Day.js, date-fns और Luxon।
1. Moment.js — क्लासिक शैली
लंबे समय तक, Moment.js तिथियों के साथ कार्य करने के लिए डी-फैक्टो मानक था। यह पार्सिंग, सत्यापन, हेरफेर और तिथियों के प्रदर्शन के लिए एक समृद्ध API प्रदान करता है। हालाँकि, इस लाइब्रेरी को पुराना (मेंटेनेंस मोड) माना जाता है और बड़े आकार (लगभग 300 KB) और प्रदर्शन समस्याओं के कारण नए प्रोजेक्ट्स के लिए अनुशंसित नहीं है।
स्थापना:
npm install momentउपयोग के उदाहरण:
const moment = require('moment');
// वर्तमान तिथिconst now = moment();console.log(now.format('YYYY-MM-DD HH:mm:ss')); // 2025-03-15 14:30:00
// स्ट्रिंग पार्स करनाconst date = moment('2025-12-31', 'YYYY-MM-DD');console.log(date.add(1, 'day').format('DD.MM.YYYY')); // 01.01.2026
// तिथियों के बीच अंतरconst start = moment('2025-01-01');const end = moment('2025-03-15');console.log('बीते दिन:', end.diff(start, 'days')); // 732. Day.js — हल्का विकल्प
Day.js एक न्यूनतम लाइब्रेरी है (केवल 2 KB), जो API में Moment.js के साथ पूरी तरह से संगत है। यह उन प्रोजेक्ट्स के लिए आदर्श है जहाँ बंडल का आकार महत्वपूर्ण है। Day.js कार्यक्षमता बढ़ाने के लिए प्लगइन्स का समर्थन करता है (समय क्षेत्र, सापेक्ष समय, आदि)।
स्थापना:
npm install dayjsउपयोग के उदाहरण:
const dayjs = require('dayjs');const relativeTime = require('dayjs/plugin/relativeTime');const utc = require('dayjs/plugin/utc');
dayjs.extend(relativeTime);dayjs.extend(utc);
// वर्तमान तिथिconsole.log(dayjs().format('DD.MM.YYYY')); // 15.03.2025
// सापेक्ष समयconsole.log(dayjs('2025-03-10').fromNow()); // 5 दिन पहले
// UTC के साथ कार्यconsole.log(dayjs.utc().format()); // 2025-03-15T11:30:00Z3. date-fns — कार्यात्मक दृष्टिकोण
date-fns एक आधुनिक लाइब्रेरी है जो कार्यात्मक प्रोग्रामिंग के सिद्धांतों पर बनी है। Moment.js के विपरीत, यह परिवर्तनशील ऑब्जेक्ट का उपयोग नहीं करती है और ट्री-शेकिंग का समर्थन करती है, जिससे केवल आवश्यक फ़ंक्शन आयात किए जा सकते हैं और बंडल का आकार कम किया जा सकता है।
स्थापना:
npm install date-fnsउपयोग के उदाहरण:
const { format, addDays, differenceInDays, parseISO } = require('date-fns');const { ru } = require('date-fns/locale');
// लोकेल के साथ फ़ॉर्मेटिंगconsole.log(format(new Date(), 'd MMMM yyyy', { locale: ru })); // 15 марта 2025
// हेरफेरconst future = addDays(new Date(), 10);console.log(format(future, 'yyyy-MM-dd')); // 2025-03-25
// अंतरconst d1 = parseISO('2025-01-01');const d2 = new Date();console.log('नए साल से दिन:', differenceInDays(d2, d1)); // 734. Luxon — आधुनिक मानक
Luxon Moment.js के निर्माताओं की एक लाइब्रेरी है, लेकिन उनकी कमियों से रहित है। यह मूल DateTime, Duration और Interval ऑब्जेक्ट का उपयोग करता है, और बॉक्स से बाहर समय क्षेत्र और अंतर्राष्ट्रीयकरण का समर्थन करता है। Luxon समय क्षेत्रों के साथ जटिल परिदृश्यों के लिए आदर्श है।
स्थापना:
npm install luxon पुस्तकालय में भी
Mongoose Paginate JavaScript (Node.js) हिंदी गाइड: उदाहरण सहित
TypeScript में XML के साथ कार्य: लाइब्रेरीज़, पार्सिंग और XML दस्तावेज़ बनाना
Codable Swift: पूर्ण गाइड उदाहरणों के साथ
Knex.js JavaScript (Node.js) के लिए: पूरी गाइड उदाहरण सहित
Go (Golang) के लिए HTTP-क्लाइंट: HTTP के साथ काम करने के लिए शीर्ष लाइब्रेरी