TypeScript में दिनांक और समय के साथ कार्य करना: मूल बातों से लेकर उन्नत तकनीकों तक
दिनांक और समय का प्रबंधन वेब डेवलपमेंट में प्रमुख कार्यों में से एक है। चाहे वह प्रकाशन का समय प्रदर्शित करना हो, समय सीमा की गणना करना हो, या सर्वर के साथ डेटा सिंक्रोनाइज़ करना हो, TypeScript समय चिह्नों के साथ कार्य करने के लिए शक्तिशाली उपकरण प्रदान करता है। इस लेख में, हम दिनांक के साथ कार्य करने के सभी पहलुओं को कवर करेंगे: Date ऑब्जेक्ट बनाने से लेकर समय क्षेत्रों के साथ जटिल हेरफेर और फ़ॉर्मेटिंग तक।
1. TypeScript में Date ऑब्जेक्ट के साथ कार्य करने की मूल बातें
TypeScript में, JavaScript की तरह ही, दिनांक के साथ कार्य करने के लिए बिल्ट-इन Date ऑब्जेक्ट जिम्मेदार है। सख्त टाइपिंग के कारण, TypeScript गलत डेटा पास करने पर होने वाली त्रुटियों से बचने में मदद करता है।
Date ऑब्जेक्ट बनाना
दिनांक का इंस्टेंस बनाने के कई तरीके हैं:
// वर्तमान दिनांक और समयconst now: Date = new Date();console.log(now); // Tue Oct 24 2023 14:30:00 GMT+0300
// मिलीसेकंड द्वारा (Unix timestamp)const fromTimestamp: Date = new Date(1698153000000);
// स्ट्रिंग से (ISO 8601)const fromString: Date = new Date("2023-10-24T12:00:00Z");
// घटकों से (वर्ष, महीना, दिन, घंटे, मिनट, सेकंड)const customDate: Date = new Date(2023, 9, 24, 14, 30, 0); // महीने 0 से 11 तक!महत्वपूर्ण: JavaScript/TypeScript में महीनों की संख्या 0 से शुरू होती है (जनवरी — 0, दिसंबर — 11)। यह बग का एक सामान्य कारण है।
दिनांक के घटक प्राप्त करना
दिनांक के अलग-अलग भागों को निकालने के लिए गेटर्स का उपयोग किया जाता है:
const date: Date = new Date();const year: number = date.getFullYear(); // 2023const month: number = date.getMonth(); // 9 (अक्टूबर)const day: number = date.getDate(); // 24const hours: number = date.getHours(); // 14const minutes: number = date.getMinutes(); // 30const seconds: number = date.getSeconds(); // 0const dayOfWeek: number = date.getDay(); // 2 (मंगलवार, 0 - रविवार)2. दिनांकों का फ़ॉर्मेटिंग और प्रदर्शन
मानक Date.toString() आउटपुट अक्सर उपयोगकर्ता इंटरफ़ेस के लिए उपयुक्त नहीं होता है। आइए फ़ॉर्मेटिंग के मुख्य तरीकों पर नज़र डालें।
बिल्ट-इन फ़ॉर्मेटिंग विधियाँ
toDateString()— "Tue Oct 24 2023"toLocaleDateString()— स्थानीयकृत दिनांक (उदाहरण के लिए, रूस के लिए "24.10.2023")toISOString()— ISO प्रारूप में स्ट्रिंग ("2023-10-24T11:30:00.000Z")
const date: Date = new Date();console.log(date.toLocaleDateString('hi-IN')); // 24/10/2023console.log(date.toLocaleTimeString('hi-IN')); // 2:30:00 pmIntl.DateTimeFormat के साथ कस्टम फ़ॉर्मेटिंग
अधिक लचीले नियंत्रण के लिए Intl.DateTimeFormat का उपयोग करें:
const date: Date = new Date();const formatter = new Intl.DateTimeFormat('hi-IN', { year: 'numeric', month: 'long', day: 'numeric', weekday: 'long', hour: '2-digit', minute: '2-digit'});console.log(formatter.format(date)); // "मंगलवार, 24 अक्टूबर 2023, 02:30 pm"date-fns लाइब्रेरी
जटिल कार्यों के लिए date-fns लाइब्रेरी का उपयोग करने की अनुशंसा की जाती है। यह हल्की है और इसमें TypeScript के लिए उत्कृष्ट समर्थन है:
import { format, addDays, isWeekend } from 'date-fns';import { hi } from 'date-fns/locale';
const date: Date = new Date();console.log(format(date, 'dd.MM.yyyy', { locale: hi })); // "24.10.2023"console.log(format(date, 'HH:mm:ss')); // "14:30:00"console.log(isWeekend(date)); // false3. दिनांकों में हेरफेर: जोड़ना, घटाना और तुलना
दिनांक बदलना
सबसे आसान तरीका सेटर्स का उपयोग करना है:
const date: Date = new Date();date.setFullYear(2024);date.setMonth(11); // दिसंबरdate.setDate(31);console.log(date); // "Tue Dec 31 2024 14:30