TypeScript में दिनांक और समय के साथ कार्य करना: मूल बातों से लेकर उन्नत तकनीकों तक
दिनांक और समय के साथ कार्य करना वेब डेवलपमेंट में सबसे आम कार्यों में से एक है। TypeScript, JavaScript के ऊपर एक परत होने के नाते, बिल्ट-इन Date ऑब्जेक्ट को इनहेरिट करता है, लेकिन इसमें सख्त टाइपिंग जोड़ता है। इस लेख में, हम TypeScript में दिनांकों के साथ प्रभावी ढंग से कार्य करने का तरीका समझेंगे: निर्माण और फ़ॉर्मेटिंग से लेकर टाइमज़ोन के साथ जटिल मैनिपुलेशन तक। आप सीखेंगे कि सामान्य गलतियों से कैसे बचें और कोड को अधिक विश्वसनीय और पठनीय कैसे बनाएं।
मूल बातें: दिनांकों का निर्माण और बुनियादी संचालन
TypeScript में Date ऑब्जेक्ट वही JavaScript ऑब्जेक्ट है, लेकिन बेहतर टाइप सपोर्ट के साथ। आइए दिनांक बनाने के मुख्य तरीकों पर नज़र डालें:
// वर्तमान दिनांक और समयconst now: Date = new Date();
// स्ट्रिंग से (ISO 8601)const specificDate: Date = new Date('2024-12-25T10:30:00Z');
// घटकों से (वर्ष, महीना (0-11), दिन, घंटे, मिनट, सेकंड)const customDate: Date = new Date(2024, 11, 25, 10, 30, 0); // 25 दिसंबर 2024
// मिलीसेकंड से (Unix timestamp)const fromTimestamp: Date = new Date(1703493000000);यह याद रखना महत्वपूर्ण है कि JavaScript/TypeScript में महीनों की संख्या 0 से शुरू होती है (जनवरी — 0, दिसंबर — 11)। यह शुरुआती लोगों के लिए गलतियों का एक सामान्य कारण है। भ्रम से बचने के लिए, स्ट्रिंग फ़ॉर्मेट या लाइब्रेरी का उपयोग करने की सिफारिश की जाती है।
दिनांक के घटक प्राप्त करने के लिए बुनियादी विधियाँ:
getFullYear()— वर्ष लौटाता है (4 अंक)getMonth()— महीना (0-11)getDate()— महीने का दिन (1-31)getDay()— सप्ताह का दिन (0 — रविवार, 6 — शनिवार)getHours(),getMinutes(),getSeconds()— समयgetTime()— 1 जनवरी 1970 से मिलीसेकंड की संख्या
टाइपिंग के साथ उपयोग का उदाहरण:
function formatDate(date: Date): string { const year: number = date.getFullYear(); const month: string = String(date.getMonth() + 1).padStart(2, '0'); const day: string = String(date.getDate()).padStart(2, '0'); return `${year}-${month}-${day}`;}
const today: Date = new Date();console.log(formatDate(today)); // "2024-12-25"दिनांकों का फ़ॉर्मेटिंग और प्रदर्शन
TypeScript में दिनांक फ़ॉर्मेटिंग के लिए बिल्ट-इन विधियाँ सीमित हैं। सरल कार्यों के लिए toLocaleDateString() और toLocaleTimeString() का उपयोग किया जा सकता है:
const date: Date = new Date('2024-12-25T10:30:00');
// स्थानीयकृत फ़ॉर्मेटconsole.log(date.toLocaleDateString('hi-IN')); // "25/12/2024"console.log(date.toLocaleTimeString('hi-IN')); // "10:30:00 am"
// पूर्ण फ़ॉर्मेटconsole.log(date.toLocaleString('hi-IN', { year: 'numeric', month: 'long', day: 'numeric', weekday: 'long'})); // "बुधवार, 25 दिसंबर 2024"हालांकि, जटिल फ़ॉर्मेटिंग या आउटपुट पर सख्त नियंत्रण के लिए विशेष लाइब्रेरी का उपयोग करना बेहतर है। सबसे लोकप्रिय date-fns है — हल्की, मॉड्यूलर और TypeScript के साथ पूरी तरह से संगत।
स्थापना:
npm install date-fnsउपयोग का उदाहरण:
import { format, addDays, parseISO } from 'date-fns';import { hi } from 'date-fns/locale';
const date: Date = parseISO('2024-12-25T10:30:00');
// फ़ॉर्मेटिंगconsole.log(format(date, 'dd.MM.yyyy')); // "25.12.2024"console.log(format(date, 'PPP', { locale: hi })); // "25 दिसंबर 2024"
// दिन जोड़नाconst futureDate: Date = addDays(date, 10);console.log(format(futureDate, 'dd.MM.yyyy')); // "04.01.2025"date-fns से अन्य उपयोगी फ़ंक्शन: differenceInDays, isBefore, isAfter, startOfMonth, endOfWeek और कई अन्य। लाइब्रेरी मूल डेटा को म्यूट किए बिना साफ, फंक्शनल कोड लिखने की अनुमति देती है।