date-fns क्या है?

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

date-fns प्लेग्राउंड क्यों उपयोग करें?

JavaScript में तिथियों के साथ काम करना जटिल हो सकता है—समय क्षेत्र, फ़ॉर्मेटिंग पैटर्न, और तिथि अंकगणित अक्सर अप्रत्याशित परिणाम देते हैं। एक प्लेग्राउंड वातावरण आपको date-fns फ़ंक्शनों के साथ रीयल‑टाइम में प्रयोग करने, तुरंत आउटपुट देखने और पूरी परियोजना सेट‑अप किए बिना API सीखने की सुविधा देता है। यह फ़ॉर्मेटिंग स्ट्रिंग्स का परीक्षण करने, तिथि गणनाओं को डिबग करने, या एप्लिकेशन में एकीकृत करने से पहले तिथि लॉजिक का त्वरित प्रोटोटाइप बनाने के लिए आदर्श है।

टूल विवरण

date-fns Playground एक इंटरैक्टिव कोडिंग वातावरण है जो आपको पूर्ण date-fns लाइब्रेरी प्री‑लोडेड के साथ JavaScript कोड लिखने और चलाने की अनुमति देता है। पूरी date-fns लाइब्रेरी dateFns ऑब्जेक्ट के माध्यम से उपलब्ध है, जिससे आप 200+ फ़ंक्शनों तक पहुंच सकते हैं। कोड टाइप करते ही (डिबाउंसिंग के साथ) स्वतः चलती है, और सभी console.log, console.warn, तथा console.error आउटपुट एडिटर के नीचे निर्मित टर्मिनल में दिखते हैं। यह date-fns सीखने, तिथि संचालन का परीक्षण करने और विभिन्न फ़ॉर्मेटिंग विकल्पों के साथ प्रयोग करने के लिए आदर्श है।

उदाहरण

वर्तमान तिथि को फ़ॉर्मेट करें:

const now = new Date();
console.log(dateFns.format(now, "MMMM do, yyyy"));
// Output: December 30th, 2025

दो तिथियों के बीच दिनों की गणना करें:

const start = new Date(2025, 0, 1);
const end = new Date(2025, 11, 31);
console.log(dateFns.differenceInDays(end, start) + " days");
// Output: 364 days

तिथि में समय जोड़ें:

const today = new Date();
const nextWeek = dateFns.addWeeks(today, 1);
const nextMonth = dateFns.addMonths(today, 1);
console.log("Next week:", dateFns.format(nextWeek, "yyyy-MM-dd"));
console.log("Next month:", dateFns.format(nextMonth, "yyyy-MM-dd"));

जाँचें कि तिथि अतीत में है या भविष्य में:

const date = new Date(2024, 5, 15);
console.log("Is past?", dateFns.isPast(date));
console.log("Is future?", dateFns.isFuture(date));

तिथि स्ट्रिंग को पार्स करें:

const parsed = dateFns.parse("25/12/2025", "dd/MM/yyyy", new Date());
console.log(dateFns.format(parsed, "EEEE, MMMM do, yyyy"));
// Output: Thursday, December 25th, 2025

विशेषताएँ

  • पूर्ण date-fns लाइब्रेरी: dateFns ऑब्जेक्ट के माध्यम से सभी 200+ date-fns फ़ंक्शन उपलब्ध
  • लाइव कोड निष्पादन: टाइप करते ही कोड स्वचालित रूप से चलती है, स्मार्ट डिबाउंसिंग के साथ
  • निर्मित टर्मिनल: ब्राउज़र डेवलपर टूल्स की आवश्यकता के बिना तुरंत कंसोल आउटपुट देखें
  • सिंटैक्स हाइलाइटिंग: बेहतर कोड पठनीयता के लिए JavaScript सिंटैक्स हाइलाइटिंग
  • त्रुटि हैंडलिंग: रन‑टाइम त्रुटियाँ टर्मिनल आउटपुट में स्पष्ट रूप से प्रदर्शित होती हैं

उपयोग के मामले

  • date-fns सीखना: विभिन्न फ़ंक्शनों के साथ प्रयोग करें और परिणाम तुरंत देखें, बिना प्रोजेक्ट सेट‑अप के
  • तिथि फ़ॉर्मेट परीक्षण: विभिन्न फ़ॉर्मेट स्ट्रिंग्स आज़माएँ और वांछित आउटपुट पैटर्न प्राप्त करें
  • तिथि गणना प्रोटोटाइप: व्यापारिक दिनों को जोड़ना, अंतराल खोजना या तिथियों की तुलना जैसे जटिल तिथि अंकगणित का परीक्षण
  • डिबगिंग तिथि लॉजिक: अपने प्रोजेक्ट से तिथि‑संबंधित कोड स्निपेट्स को अलग‑अलग करके परीक्षण करें
  • त्वरित तिथि रूपांतरण: तिथि फ़ॉर्मेट्स के बीच रूपांतरण या समय अंतर की त्वरित गणना

सामान्य date-fns फ़ंक्शन

फ़ंक्शन विवरण उदाहरण
format तिथि को स्ट्रिंग में फ़ॉर्मेट करें dateFns.format(date, "yyyy-MM-dd")
parse स्ट्रिंग को तिथि में पार्स करें dateFns.parse("2025-01-01", "yyyy-MM-dd", new Date())
addDays तिथि में दिन जोड़ें dateFns.addDays(date, 7)
subMonths तिथि से महीने घटाएँ dateFns.subMonths(date, 3)
differenceInDays तिथियों के बीच दिनों की संख्या प्राप्त करें dateFns.differenceInDays(dateA, dateB)
isAfter जाँचें कि तिथि किसी अन्य तिथि के बाद है dateFns.isAfter(dateA, dateB)
isBefore जाँचें कि तिथि किसी अन्य तिथि से पहले है dateFns.isBefore(dateA, dateB)
startOfMonth महीने का पहला दिन प्राप्त करें dateFns.startOfMonth(date)
endOfYear वर्ष का अंतिम क्षण प्राप्त करें dateFns.endOfYear(date)
formatDistance मानव‑पठनीय समय अंतर प्राप्त करें dateFns.formatDistance(dateA, dateB)

फ़ॉर्मेट टोकन संदर्भ

टोकन विवरण उदाहरण
yyyy 4‑अंकीय वर्ष 2025
MM 2‑अंकीय माह 01‑12
MMMM पूर्ण माह का नाम January
dd 2‑अंकीय दिन 01‑31
do क्रमांक के साथ दिन 1st, 2nd, 3rd
EEEE पूर्ण सप्ताह का नाम Monday
EEE संक्षिप्त सप्ताह Mon
HH 24‑घंटा स्वरूप 00‑23
hh 12‑घंटा स्वरूप 01‑12
mm मिनट 00‑59
ss सेकंड 00‑59
a AM/PM AM, PM