जावास्क्रिप्ट म॑ लिखलऽ लगभग कोनो भी तरह के एप्लीकेशन कुछ क्षमता म॑ समय या तारीख के साथ काम करै छै । शुरू मे ई बिल्ट-इन डेट एपीआई तक सीमित छल. एहि एपीआई मे बुनियादी कार्यक्षमता शामिल अछि, मुदा इ की क सकैत अछि ताहि मे काफी सीमित अछि. Moment.js जैसनऽ थर्ड-पार्टी लाइब्रेरी, आरू बाद म॑ बिल्ट-इन एपीआई जेना कि Intl APIs आरू नया Temporal API, समय आरू तारीख के साथ काम करै म॑ बहुत अधिक लचीलापन जोड़ै छै । क्षण के उदय और पतन.js Moment.js एकटा जावास्क्रिप्ट लाइब्रेरी छै जेकरा म॑ समय आरू तिथि के साथ काम करै लेली शक्तिशाली उपयोगिता छै । एकरा म॑ बेसिक डेट एपीआई स॑ गायब सुविधा, जेना कि समय क्षेत्र हेरफेर, शामिल छै आरू बहुत सारा आम ऑपरेशन क॑ सरल बनाबै छै. मोमेंट मे तिथि आ समय कें फॉर्मेट करय कें लेल फंक्शन सेहो शामिल छै. ई बहुत तरह के अनुप्रयोगऽ म॑ व्यापक रूप स॑ प्रयोग करलऽ जाय वाला पुस्तकालय बनी गेलै । ओना मोमेंट के मुद्दा मे सेहो अपन हिस्सा छल. इ एकटा पैघ लाइब्रेरी छै, आ कोनों एप्लीकेशन कें बंडल आकार मे काफी जोड़ सकय छै. चूँकि लाइब्रेरी गाछ हिलाबय के समर्थन नहिं करैत अछि (आधुनिक बंडलर के एकटा एहन विशेषता जे लाइब्रेरी के अप्रयुक्त भाग के हटा सकैत अछि), पूरा मोमेंट लाइब्रेरी शामिल अछि भले अहाँ ओकर मात्र एक या दू टा फंक्शन के उपयोग करी. मोमेंट के एकटा आओर मुद्दा ई अछि जे एहि सं जे वस्तु बनैत अछि ओ परिवर्तनशील अछि. Moment ऑब्जेक्ट पर कुछ फंक्शन क॑ कॉल करला स॑ साइड इफेक्ट होय छै आरू वू ऑब्जेक्ट केरऽ वैल्यू म॑ उत्परिवर्तन होय ​​जाय छै । एहि सं अप्रत्याशित व्यवहार या बग भ सकैत अछि. 2020 मे मोमेंट के रखरखाव करय वाला लोक लाइब्रेरी के मेंटेनेंस मोड मे राखय के फैसला केलनि. कोनों नया फीचर विकास नै होय रहलऽ छै, आरू रखरखाव करै वाला एकरऽ उपयोग नया परियोजना लेली नै करै के सलाह दै छै । अन्य जावास्क्रिप्ट तिथि पुस्तकालय छै, जेना कि date-fns, लेकिन शहर म॑ एगो नया खिलाड़ी छै, जे सीधा जावास्क्रिप्ट: टेम्पोरल म॑ बनलऽ एपीआई छै । ई एगो नया मानक छै जे मूल डेट एपीआई केरऽ छेद क॑ भरै के साथ-साथ मोमेंट आरू अन्य लाइब्रेरी म॑ मिलै वाला कुछ सीमा क॑ हल करै छै । लौकिक की होइत अछि ? टेम्पोरल एकटा नया समय आरू तिथि एपीआई छै जेकरा ईसीएमएसक्रिप्ट मानक म॑ जोड़लऽ जाय रहलऽ छै, जे आधुनिक जावास्क्रिप्ट क॑ परिभाषित करै छै । मार्च २०२६६ तलक, ई टीसी३९ प्रक्रिया (जावास्क्रिप्ट भाषा म॑ प्रस्ताव आरू जोड़ऽ के देखरेख करै वाला समिति) केरऽ स्टेज ४ प॑ पहुँची गेलऽ छै, आरू ई ईसीएमएसक्रिप्ट विनिर्देश केरऽ अगला संस्करण म॑ शामिल करलऽ जैतै । एकरा पहिने स॑ ही कई ब्राउज़र म॑ लागू करलऽ गेलऽ छै: क्रोम १४४+ आरू फायरफॉक्स १३९+, जेकरऽ बाद सफारी जल्दिये आबै के उम्मीद छै । असमर्थित ब्राउज़र आओर Node.js क लेल सेहो पॉलीफिल उपलब्ध अछि. टेम्पोरल एपीआई ऐन्हऽ वस्तु बनाबै छै जे, सामान्य तौर प॑, समय म॑ क्षणऽ के प्रतिनिधित्व करै छै । इ कोनों समय क्षेत्र मे पूर्णकालिक आ तिथि कें डाक टिकट भ सकय छै, या इ बिना कोनों समय क्षेत्र या तिथि कें जानकारी कें “दीवार घड़ी” समय कें जेनेरिक उदाहरण भ सकय छै. टेम्पोरल के किछु मुख्य विशेषता में शामिल अछि :

तिथिक कें साथ या बिना तिथिक कें समय.एकटा टेम्पोरल वस्तु कोनों विशिष्ट तिथि पर कोनों विशिष्ट समय कें प्रतिनिधित्व कयर सकय छै, या कोनों तिथि कें जानकारी कें बिना कोनों समय कें. कोनो विशिष्ट तिथि, बिना समय के, सेहो प्रतिनिधित्व कयल जा सकैत अछि | समय क्षेत्र समर्थन.टेम्पोरल वस्तु पूर्ण रूप सं समय क्षेत्र कें प्रति जागरूक छै आ अलग-अलग समय क्षेत्रक मे परिवर्तित कैल जा सकय छै. मोमेंट समय क्षेत्र क॑ भी समर्थन करै छै, लेकिन एकरा लेली अतिरिक्त मोमेंट-टाइमजोन लाइब्रेरी के जरूरत छै । अपरिवर्तनीयता.एक बेर कोनो Temporal ऑब्जेक्ट बनलाक बाद ओकरा बदलल नहि जा सकैत अछि। समय अंकगणित या समय क्षेत्र रूपांतरण अंतर्निहित वस्तु क॑ संशोधित नै करै छै । बल्कि, ओ सब एकटा नव Temporal ऑब्जेक्ट उत्पन्न करैत छथि । 1-आधारित अनुक्रमण.तिथि एपीआई (साथ ही मोमेंट कें साथ) कें साथ बग कें एकटा आम स्रोत इ छै की महीना शून्य-अनुक्रमित छै. मतलब जनवरी महीना 0 अछि, नहि कि महीना 1 जेना कि हम सब वास्तविक जीवन मे बुझैत छी। टेम्पोरल 1-आधारित अनुक्रमणिका क उपयोग कए एकरा ठीक करैत अछि — जनवरी महीना 1 अछि । ई ब्राउज़र म॑ बनलऽ छै.चूंकि टेम्पोरल खुद ब्राउज़र म॑ एगो एपीआई छै, ई लेली ई आपकऽ एप्लीकेशन केरऽ बंडल साइज म॑ कुछ नै जोड़ै छै.

इहो ध्यान राखब जरूरी अछि जे डेट एपीआई दूर नहि भ’ रहल अछि. जखन कि टेम्पोरल एहि एपीआई कए स्थान लैत अछि, एकरा हटाओल वा अप्रचलित नहि कएल जा रहल अछि । अगर ब्राउज़र अचानक डेट एपीआई हटा दैत अछि त बहुत रास एप्लीकेशन टूटि जाएत. मुदा ईहो ध्यान राखब जे आब मोमेंट के मेंटेनेंस मोड मे लेगेसी प्रोजेक्ट मानल जाइत अछि. बाकी लेख म॑, हम्मं॑ मोमेंट-आधारित कोड क॑ नया टेम्पोरल एपीआई म॑ माइग्रेट करै के कुछ “रेसिपी” देखबै । रिफैक्टरिंग शुरू करी! तिथि एवं समय वस्तु बनाना तारीख आ समय मे हेरफेर करबा स पहिने ओकरा प्रतिनिधित्व करय वाला वस्तु बनेबाक अछि। वर्तमान तिथि आरू समय क॑ दर्शाबै वाला Moment ऑब्जेक्ट बनाबै लेली, moment फंक्शन के प्रयोग करलऽ जाय । const अब = क्षण (); कंसोल.लॉग (अब); // क्षण <2026-02-18T21:26:29-05:00>

आब एहि वस्तु केँ आवश्यकतानुसार स्वरूपित वा हेरफेर कएल जा सकैत अछि ।

// यूटीसी में बदलें //warning: ई Moment ऑब्जेक्ट क' उत्परिवर्तित करैत अछि आओर ओकरा UTC मोड मे राखैत अछि ! कंसोल.लॉग (अब.utc ()); // क्षण <2026-02-19T02:26:29Z>

// एकटा प्रारूपित स्ट्रिंग प्रिंट करू - ध्यान दियौ जे ई आब यूटीसी समय क' उपयोग क' रहल अछि console.log (अब. प्रारूप ('एमएम / डीडी / YYYY hh: मिमी: ss एक ')); // ०२/१९/२०२६ ०२:२७:०७ प्रातः

मोमेंट के बारे में याद राखय के मुख्य बात ई छै कि मोमेंट ऑब्जेक्ट में हमेशा समय आरू तारीख के बारे में जानकारी शामिल होय छै. यदि अहां कें केवल समय कें जानकारी कें साथ काम करय कें जरूरत छै, त इ आमतौर पर ठीक छै, मुदा इ डेलाइट सेविंग टाइम या लीप इयर जैना परिस्थितिक मे अप्रत्याशित व्यवहार पैदा कयर सकय छै, जतय तिथि कें प्रभाव समय कें गणना पर पड़य सकय छै. टेम्पोरल बेसी लचीला होइत अछि। अहां Temporal.Instant ऑब्जेक्ट बना क वर्तमान तिथि आओर समय क प्रतिनिधित्व करय वाला ऑब्जेक्ट बना सकय छी. ई “युग” (1 जनवरी, 1970 क॑ आधा रात के यूटीसी) के बाद के समय द्वारा परिभाषित समय के बिन्दु के प्रतिनिधित्व करै छै । टेम्पोरल नैनोसेकंड स्तर के परिशुद्धता के साथ समय में ई क्षण के संदर्भ द॑ सकै छै । const अब = अस्थायी.अब.क्षणिक ();

// युग के बाद से कच्चे नैनोसेकंड देखें console.log (अब. epochNanoseconds); // 1771466342612000000न

// यूटीसी के लिये प्रारूप कंसोल.लॉग (अब. toString ()); // 2026-02-19T01:55:27.844Z

// एक विशेष समय क्षेत्र के लिये प्रारूप console.log (now.toString ({ समय क्षेत्र: 'अमेरिका / न्यू_यार्क' })); // 2026-02-18T20:56:57.905-05:00

Temporal.Instant ऑब्जेक्ट कें फ्रॉम स्टेटिक मेथड कें उपयोग करयत एकटा विशिष्ट समय आ तिथि कें लेल सेहो बनायल जा सकय छै.

const myInstant = अस्थायी.Instant.from ('2026-02-18T21:10:00-05:00');

// स्थानीय समय क्षेत्र में तत्काल स्वरूपित करें। ध्यान राखू जे ई मात्र नियंत्रण करैत अछि // स्वरूपण - ई वस्तु केँ उत्परिवर्तित नहि करैत अछि जेना moment.utc करैत अछि. console.log (myInstant.toString ({ समय क्षेत्र: 'अमेरिका / न्यू_यार्क' })); // 2026-02-18T21:10:00-05:00 के अनुसार

अहां अन्य प्रकार के टेम्पोरल ऑब्जेक्ट सेहो बना सकय छी, जाहि मे शामिल अछि:

Temporal.PlainDate: एकटा एहन तिथि जकर कोनो समयक जानकारी नहि हो। Temporal.PlainTime: एकटा एहन समय जकर कोनो तिथिक जानकारी नहि हो। Temporal.ZonedDateTime: कोनो विशिष्ट समय क्षेत्र मे एकटा तिथि आ समय.

एहि मे सँ प्रत्येक मे एकटा from मेथड अछि जकरा तारीख आओर/अथवा समय निर्दिष्ट करय बला ऑब्जेक्ट क' संग कॉल कएल जा सकैत अछि, अथवा पार्स करबाक लेल एकटा डेट स्ट्रिंग. // बस एकटा तारीख const today = अस्थायी.सादातिथि.से ({ वर्ष: 2026, 2020। महीना: 2, // नोट हम फरवरी के लेल 2 के उपयोग क रहल छी दिन : 18 के }); कंसोल.लॉग (आज.toString ()); // 2026-02-18 के

// बस एक समय const lunchTime = अस्थायी.सादा समय.से ({ घंटा : 12 }); console.log (लंच टाइम.टूस्ट्रिंग ()); // 12:00:00 बजे के समय

// अमेरिकी पूर्वी समय क्षेत्र में एक तिथि और समय const dueAt = अस्थायी.जोनतिथिसमय.से ({ timeZone: 'अमेरिका/न्यूयॉर्क', 1999। वर्ष: 2026, 2020। माह : ३, २०१८। दिन : १, २. घण्टा : १२, १२. मिनट: 0, 10। दोसर : 0 }); कंसोल.लॉग (dueAt.toString ()); // 2026-03-01T12:00:00-05:00[अमेरिका/न्यूयॉर्क]।

पार्सिंग हम तिथि आ समय के जानकारी के प्रोग्रामेटिक निर्माण के कवर केने छी. आब पार्सिंग पर नजरि दी। पार्सिंग एकटा एहन क्षेत्र छै जतय मोमेंट बिल्ट-इन टेम्पोरल एपीआई सं बेसि लचीला छै. अहाँ कोनो तारीख स्ट्रिंग केँ मोमेंट फंक्शन मे पास कए पार्स क' सकैत छी. एकल तर्क के साथ, मोमेंट एक ISO तिथि स्ट्रिंग के अपेक्षा करै छै, लेकिन अगर आप उपयोग करलऽ जाय रहलऽ तिथि प्रारूप क॑ निर्दिष्ट करै वाला दोसरऽ तर्क प्रदान करै छै त॑ आप वैकल्पिक प्रारूपऽ के उपयोग करी सकै छियै ।

const isoDate = क्षण ('2026-02-21T09:00:00'); const formattedDate = क्षण ('2/21/26 9:00:00', 'एम / डी / वाईवाई एच: मिमी: एसएस');

कंसोल.लॉग (isoDate); // क्षण <2026-02-21T09:00:00-05:00>

console.log (स्वरूपित तिथि); // क्षण <2026-02-21T09:00:00-05:00>

पुरान संस्करणऽ म॑, मोमेंट कोनो भी मनमाना रूप स॑ फॉर्मेट करलऽ गेलऽ तारीख स्ट्रिंग क॑ पार्स करै लेली सबसे अच्छा अनुमान लगाबै छै । एहि स अप्रत्याशित परिणाम आबि सकैत अछि। जेना 02-03-2026 2 फरवरी अछि या 3 मार्च? एहि कारण सँ, मोमेंट केर नव संस्करण एकटा प्रमुख अवमानना ​​चेतावनी प्रदर्शित करैत अछि जँ एकरा बिना आईएसओ फॉर्मेट कएल गेल तिथि स्ट्रिंग केर कॉल कएल गेल अछि (जखन तक कि वांछित प्रारूपक संग दोसर तर्क सेहो नहि देल गेल हो) । टेम्पोरल केवल एकटा विशेष रूप सँ स्वरूपित तिथि स्ट्रिंग केँ पार्स करत. स्ट्रिंग कें ISO 8601 प्रारूप या ओकर विस्तार, RFC 9557 कें अनुरूप होबाक चाही.यदि कोनों गैर-अनुरूप तिथि स्ट्रिंग कें एकटा from विधि मे पास कैल गेल छै, त टेम्पोरल एकटा RangeError फेंकतय.

// एक आरएफसी 9557 तिथि स्ट्रिंग का उपयोग कर रहा है const myDate = Temporal.Instant.from ('2026-02-21T09:00:00-05:00 [अमेरिका / न्यूयॉर्क]'); console.log (myDate.toString ({ समय क्षेत्र: 'अमेरिका / न्यू_यार्क' })); // 2026-02-21T09:00:00-05:00

// एक अज्ञात तिथि स्ट्रिंग का उपयोग कर const अन्यतिथि = अस्थायी.तत्काल.से ('2/21/26 9:00:00'); // RangeError: अस्थायी त्रुटि: वर्ष मान पार्स करैत काल अमान्य वर्ण।

तारीख स्ट्रिंग के सटीक आवश्यकता एहि बात पर निर्भर करैत अछि जे अहाँ कोन तरहक Temporal ऑब्जेक्ट बना रहल छी. उपरोक्त उदाहरण मे Temporal.Instant क लेल पूरा ISO क आवश्यकता अछि8601 या RFC 9557 तिथि स्ट्रिंग जे समय क्षेत्र ऑफसेट कें साथ तिथि आ समय निर्दिष्ट करयत छै, मुदा अहां तिथि प्रारूप कें सिर्फ एकटा उपसमूह कें उपयोग करयत PlainDate या PlainTime ऑब्जेक्ट कें सेहो बना सकय छी. const myDate = अस्थायी.सादातिथि.से ('2026-02-21'); console.log (myDate.toString ()); // 2026-02-21 के

const myTime = अस्थायी.सादा समय.से ('09:00:00'); console.log (मेरा समय.toString ()); // 09:00:00 बजे

ध्यान राखू जे ई स्ट्रिंग सभ एखनो अपेक्षित प्रारूपक अनुपालन करबाक चाही, नहि तँ कोनो त्रुटि फेकल जाएत.

// एक गैर-अनुरूप समय स्ट्रिंग्स का उपयोग कर। ई सब एकटा RangeError फेंकत। अस्थायी.सादा समय.से ('9:00'); अस्थायी.सादा समय.से ('9:00:00 पूर्वाह्न');

प्रो टिप: गैर-आईएसओ स्ट्रिंग कें संभालनायकिएक त’ टेम्पोरल विश्वसनीयता कें प्राथमिकता दैत छै, इ 02-01-2026 जैना स्ट्रिंग कें प्रारूप कें अनुमान लगावय कें कोशिश नहि करतय. यदि अहां कें डाटा स्रोत ऐहन स्ट्रिंग कें उपयोग करय छै, त अहां कें टेम्पोरल कें साथ उपयोग करय कें कोशिश करय सं पहिले मान कें 2026-02-01 जैना आईएसओ स्ट्रिंग मे पुनर्व्यवस्थित करय कें लेल किछ स्ट्रिंग हेरफेर करय कें होयत.

स्वरूपण एक बेर जखन अहाँक पास Moment या Temporal ऑब्जेक्ट भ’ गेल त’ संभवतः अहाँ ओकरा कोनो समय फॉर्मेट कएल स्ट्रिंग मे बदलय चाहब. ई एकटा एहन उदाहरण अछि जतय मोमेंट कनि बेसी संक्षिप्त अछि । अहाँ ऑब्जेक्ट के फॉर्मेट मेथड के टोकन के स्ट्रिंग के संग कॉल करैत छी जे वांछित डेट फॉर्मेट के वर्णन करैत अछि. const तिथि = क्षण ();

console.log (तिथि. प्रारूप ('एमएम / डीडी / YYYY')); // 02/22/2026 के

console.log (तिथि. प्रारूप ('MMMM Do YYYY, एच: मिमी: ss एक')); // 22 फरवरी 2026, रात्रि 8:18:30 बजे

दोसर दिस टेम्पोरल मे कनि बेसी वाक्पटु रहबाक आवश्यकता अछि। टेम्पोरल ऑब्जेक्ट, जेना कि Instant, कें पास toLocaleString विधि छै जे कोनों ऑब्जेक्ट कें गुणक कें रूप मे निर्दिष्ट विभिन्न स्वरूपण विकल्पक कें स्वीकार करयत छै.

const date = अस्थायी.अब.क्षणिक ();

// कोनो तर्क के बिना, हम वर्तमान लोकेल के लेल डिफ़ॉल्ट प्रारूप प्राप्त करब console.log (तिथि. toLocaleString ()); // 2/22/2026, 8:23:36 PM (en-US के एक लोकेल मानैत)

// एकटा कस्टम प्रारूप स्ट्रिंग उत्पन्न करबाक लेल प्रारूपण विकल्प पास करू console.log (तिथि.toLocaleString ('एन-अमेरिका', { माह : 'दीर्घ', २. दिन: 'संख्यात्मक', 1999। वर्ष: 'संख्यात्मक', 1999। घण्टा: '२ अंक', २. मिनट : '२ अंक'। })); // 22 फरवरी, 2026 के 8:23 बजे

// केवल ओ फील्ड पास करू जे अहाँ प्रारूप स्ट्रिंग मे चाहैत छी console.log (तिथि.toLocaleString ('एन-अमेरिका', { मास: 'लघु', २. दिन: 'संख्यात्मक'। })); // 22 फरवरी

टेम्पोरल डेट फॉर्मेटिंग वास्तव म॑ हुड के नीचे Intl.DateTimeFormat एपीआई (जे आधुनिक ब्राउज़र म॑ पहल॑ स॑ ही आसानी स॑ उपलब्ध छै) के उपयोग करै छै । एकरऽ मतलब छै कि आप अपनऽ कस्टम फॉर्मेटिंग विकल्पऽ के साथ एक पुन: उपयोग करलऽ जाय वाला DateTimeFormat ऑब्जेक्ट बनाबै सकै छियै, तखनिये Temporal ऑब्जेक्ट क॑ ओकरऽ फॉर्मेट मेथड म॑ पास करी सकै छियै । एकरऽ वजह स॑ ई कस्टम डेट फॉर्मेट क॑ सपोर्ट नै करै छै जेना कि मोमेंट करै छै । यदि अहां कें 'Q1 2026' या अन्य विशेष प्रारूपण जैना किच्छू कें जरूरत छै, त अहां कें किछ कस्टम तिथि प्रारूपण कोड या तृतीय पक्ष पुस्तकालय कें लेल पहुंच कें जरूरत भ सकय छै. const formatter = new Intl.DateTimeFormat ('हि-अमेरिका', { माह : '२ अंक', २. दिन : '२ अंक', २. वर्ष: 'संख्यात्मक'। });

const date = अस्थायी.अब.क्षणिक (); console.log (स्वरूपक. प्रारूप (तिथि)); // 02/22/2026 के

मोमेंट’क फॉर्मेटिंग टोकन लिखबा मे सरल अछि, मुदा लोकेल-फ्रेंडली नहि अछि. प्रारूप “हार्ड कोड” चीज जेना महीना/दिन क्रम स्ट्रिंग करैत अछि. कोनो कॉन्फ़िगरेशन ऑब्जेक्ट के उपयोग करय के फायदा, जेना कि टेम्पोरल करैत अछि, ई अछि जे ई स्वचालित रूप सं कोनो लोकेल के अनुकूल भ जायत आ सही प्रारूप के उपयोग करत. const date = अस्थायी.अब.क्षणिक ();

const प्रारूपविकल्प = { मास: 'संख्यात्मक', 1999। दिन: 'संख्यात्मक', 1999। वर्ष: 'संख्यात्मक'। };

console.log (तिथि.toLocaleString ('एन-अमेरिका', प्रारूपविकल्प)); // 2/22/2026 के

console.log (तिथि.toLocaleString ('एन-जीबी', प्रारूपविकल्प)); // 22/02/2026 के

तिथि गणना बहुत रास एप्लीकेशन मे, अहां के अंत मे किछ गणना कोनो तारीख पर करय पड़त. अहाँ समयक इकाई (दिन, घंटा, सेकेंड आदि) जोड़ब वा घटाबय चाहब । जेना कि अगर अहां के पास वर्तमान तारीख अछि त अहां उपयोगकर्ता के आब सं 1 सप्ताह के तारीख देखाबय चाहय छी. मोमेंट ऑब्जेक्ट मे जोड़ आ घटाव सन विधि होइत अछि जे ई ऑपरेशन करैत अछि । ई फंक्शन एकटा मान आओर एकटा इकाई लैत अछि, उदाहरण क' लेल: add(7, 'days'). लेकिन मोमेंट आरू टेम्पोरल के बीच एगो बहुत महत्वपूर्ण अंतर ई छै कि जब॑ ई तिथि गणना करलऽ जाय छै त॑ अंतर्निहित वस्तु म॑ संशोधन होय ​​जाय छै आरू ओकरऽ मूल मान खतम होय जाय छै । const अब = क्षण ();

कंसोल.लॉग (अब); // क्षण <2026-02-24T20:08:36-05:00>

const nextWeek = now.add (7, 'दिन'); console.log (अगिला सप्ताह); // क्षण <2026-03-03T20:08:36-05:00>

// गोत्चा - मूल वस्तु उत्परिवर्तित कएल गेल छल कंसोल.लॉग (अब); // क्षण <2026-03-03T20:08:36-05:00>

मूल तिथि कें नुकसान सं बचय कें लेल, अहां Moment ऑब्जेक्ट पर क्लोन कें कॉल कयर एकटा कॉपी बना सकय छी. const आब= क्षण (); const nextWeek = now.clone (). जोड़ें (7, 'दिन');

कंसोल.लॉग (अब); // क्षण <2026-02-24T20:12:55-05:00>

console.log (अगिला सप्ताह); // क्षण <2026-03-03T20:12:55-05:00>

दोसर दिस टेम्पोरल वस्तु अपरिवर्तनीय होइत अछि । एक बेर जखन अहाँ कोनो ऑब्जेक्ट जेना Instant, PlainDate, आओर एहि तरहेँ बना लेने छी तखन ओहि ऑब्जेक्ट केर मान कहियो नहि बदलत. टेम्पोरल ऑब्जेक्ट मे जोड़ आ घटाव के विधि सेहो होइत छैक | टेम्पोरल कनि चुनिंदा अछि जे कोन वस्तु प्रकार मे कोन समय इकाई जोड़ल जा सकैत अछि । जेना, अहाँ कोनो Instant मे दिन नहि जोड़ि सकैत छी:

const अब = अस्थायी.अब.क्षणिक (); const nextWeek = now.add ({ दिन: 7 }); // RangeError: अस्थायी त्रुटि: सबसँ पैघ इकाई तिथि इकाई नहि भ' सकैत अछि

एकरऽ कारण छै कि Instant ऑब्जेक्ट यूटीसी म॑ समय केरऽ एगो विशिष्ट बिंदु क॑ दर्शाबै छै आरू कैलेंडर-अज्ञेयवादी होय छै । चूँकि डेलाइट सेविंग टाइम जेहन टाइम जोन नियम के आधार पर दिन के लंबाई बदलि सकैत अछि, ई गणना कोनो इंस्टेंट पर उपलब्ध नहिं अछि. अहां, तथापि, इ ऑपरेशन अन्य प्रकार कें ऑब्जेक्ट पर कयर सकय छी, जेना कि एकटा PlainDateTime: const अब = अस्थायी.अब.सादातिथिसमयISO (); console.log (अब. toLocaleString ()); // २/२४/२०२६, ८:२३:५९ बजे राति

const nextWeek = now.add ({ दिन: 7 });

// ध्यान रहे कि मूल PlainDateTime अपरिवर्तित रहता है console.log (अब. toLocaleString ()); // २/२४/२०२६, ८:२३:५९ बजे राति

console.log (अगिला सप्ताह. toLocaleString ()); // ३/३/२०२६, ८:२३:५९ बजे राति

अहां इहो गणना क सकय छी जे दू टा Moment या Temporal ऑब्जेक्ट के बीच कतेक समय अछि. Moment’s diff function के साथ, अहाँ के दानेदारता के लेल एकटा यूनिट उपलब्ध कराबय के जरूरत अछि, अन्यथा ई अंतर मिलीसेकंड में वापस क देत. const date1 = क्षण ('2026-02-21T09:00:00'); const date2 = क्षण ('2026-02-22T10:30:00');

कंसोल.लॉग (तिथि 2. अंतर (तिथि 1)); // 91800000 के

console.log (तिथि 2.diff (तिथि 1, 'दिन')); // 1

कोनो Temporal ऑब्जेक्ट के साथ ई करै लेली, आप एक अन्य Temporal ऑब्जेक्ट क॑ ओकरऽ until या since मेथड म॑ पास करी सकै छियै । ई एकटा Temporal.Duration ऑब्जेक्ट वापस करैत अछि जाहि मे समय अंतर क बारे मे जानकारी रहैत अछि. अवधि ऑब्जेक्ट कें पास अंतर कें प्रत्येक घटक कें लेल गुण होयत छै, आ समय अंतर कें प्रतिनिधित्व करय वाला एकटा ISO 8601 अवधि स्ट्रिंग भी उत्पन्न कयर सकय छै.

const date1 = अस्थायी.सादातिथिसमय.से ('2026-02-21T09:00:00'); const date2 = अस्थायी.सादातिथिसमय.से ('2026-02-22T10:30:00');

// largestUnit प्रतिनिधित्व करबाक लेल समयक सबसँ पैघ इकाई निर्दिष्ट करैत अछि // अवधि गणना में const diff = date2.since (तिथि 1, { सबसे बड़ी इकाई: 'दिन' });

कंसोल.लॉग (diff.days); // 1

कंसोल.लॉग (diff. घंटे); // 1

कंसोल.लॉग (diff.mintes); // 30 के अनुसार

कंसोल.लॉग (diff.toString ()); // पी1डीटी1एच30एम // (ISO 8601 अवधि स्ट्रिंग: 1 दिन, 1 घंटा, 30 मिनट)

तिथि एवं समय की तुलना मोमेंट आरू टेम्पोरल दोनों ही आपने क॑ तारीख आरू समय के तुलना करी क॑ ई तय करै के सुविधा दै छै कि कोन दोसरऽ स॑ पहल॑ आबै छै, लेकिन एपीआई के साथ अलग-अलग तरीका अपनाबै छै । Moment दू Moment वस्तु के तुलना करय के लेल isBefore, isAfter, आरू isSame जैसनऽ विधि प्रदान करै छै. const date1 = क्षण ('2026-02-21T09:00:00'); const date2 = क्षण ('2026-02-22T10:30:00');

console.log (तिथि 1. isBefore (तिथि 2)); // सत्य

टेम्पोरल एक ही प्रकार के दू वस्तु के बीच तुलना करै लेली स्थिर तुलना विधि के उपयोग करै छै. ई -1 वापस करैत अछि जँ पहिल तिथि दोसरसँ पहिने अबैत अछि, 0 जँ ओ सभ बराबर अछि, वा 1 जँ पहिल तिथि दोसरक बाद अबैत अछि । निम्नलिखित उदाहरण दू PlainDate ऑब्जेक्ट कें तुलना करय कें तरीका दर्शा रहल छै. Temporal.PlainDate.compare क' लेल दुनू तर्क PlainDate ऑब्जेक्ट होबाक चाही.

const date1 = Temporal.PlainDate.from ({ वर्ष: 2026, महीना: 2, दिन: 24 }); const date2 = Temporal.PlainDate.from ({ वर्ष: 2026, महीना: 3, दिन: 24 });

// date1 date2 सँ पहिने अबैत अछि, तेँ -1 console.log (अस्थायी.सादातिथि.तुलना (तिथि 1, तारीख 2));

// त्रुटि यदि हम अलग-अलग प्रकार के दो ऑब्जेक्ट की तुलना करने की कोशिश करते हैं | console.log (अस्थायी.सादातिथि.तुलना (तिथि 1, अस्थायी.अब. तत्काल ())); // TypeError: अस्थायी त्रुटि: अमान्य PlainDate फील्ड प्रदान कएल गेल अछि.

विशेष रूप स॑, ई स॑ Temporal ऑब्जेक्ट केरऽ सरणी क॑ कालक्रम स॑ छाँटना आसान होय ​​जाय छै । // Temporal.PlainDate वस्तुओं की एक सरणी const तिथियाँ = [ ... ];

// तुलनात्मक फ़ंक्शन के रूप में Temporal.PlainDate.compare का उपयोग करें dates.sort (अस्थायी.सादातिथि.तुलना);

समय क्षेत्र रूपांतरण कोर मोमेंट लाइब्रेरी टाइम जोन रूपांतरण कें समर्थन नहि करएयत छै. यदि अहां कें इ कार्यक्षमता कें जरूरत छै, त अहां कें मोमेंट-टाइमजोन पैकेज कें सेहो इंस्टॉल करय कें जरूरत छै. ई पैकेज गाछ-हिलबा योग्य नहि अछि, आओर तेँ अहाँक बंडल आकार मे काफी जोड़ि सकैत अछि. एक बेर जखन अहाँ मोमेंट-टाइमजोन इंस्टॉल क’ लेब तखन अहाँ tz विधि सँ मोमेंट ऑब्जेक्ट केँ अलग-अलग टाइम जोन मे बदलि सकैत छी. जेना कि अन्य मोमेंट ऑपरेशन के साथ, ई अंतर्निहित के उत्परिवर्तन करी दै छैवस्तु। // अमेरिकी पूर्वी समय मानते हुए const अब = क्षण (); कंसोल.लॉग (अब); // क्षण <2026-02-28T20:08:20-05:00>

// प्रशांत समय में परिवर्तित करें। // मूल पूर्वी समय हेरा गेल अछि। now.tz ('अमेरिका / लॉस_एंजिल्स'); कंसोल.लॉग (अब); // क्षण <2026-02-28T17:08:20-08:00>

समय क्षेत्र कार्यक्षमता Temporal.ZonedDateTime ऑब्जेक्ट कें उपयोग करय कें समय Temporal API मे बनायल गेल छै. इ ऑब्जेक्ट मे एकटा withTimeZone विधि शामिल छै जे एकटा नव ZonedDateTime वापस करयत छै जे समय मे एकहि क्षण कें प्रतिनिधित्व करयत छै, मुदा निर्दिष्ट समय क्षेत्र मे. // पुनः, अमेरिकी पूर्वी समय मानते हुए const अब = अस्थायी.अब.zonedDateTimeISO (); console.log (अब. toLocaleString ()); // 2/28/2026, 8:12:02 बजे ईस्ट

// प्रशांत समय में परिवर्तित करें const nowPacific = now.withTimeZone ('अमेरिका / लॉस_एंजिल्स'); console.log (अब प्रशांत.toLocaleString ()); // 2/28/2026, 5:12:02 बजे साँझ पीएसटी

// मूल वस्तु अपरिवर्तित रहैत अछि console.log (अब. toLocaleString ()); // 2/28/2026, 8:12:02 बजे ईस्ट

नोट: toLocaleString द्वारा वापस कएल गेल स्वरूपित मान, जेना कि नाम सँ बोध होइत अछि, लोकेल-निर्भर अछि. नमूना कोड एन-यूएस लोकेल म॑ विकसित करलऽ गेलऽ छेलै, ई लेली एकरऽ प्रारूप ऐन्हऽ छै: 2/28/2026, 5:12:02 PM PST । दोसर लोकेल मे ई अलग भ सकैत अछि। जेना, एन-जीबी लोकेल मे, अहाँ केँ किछु एहन भेटत जेना 28/2/2026, 17:12:02 GMT-8. एक वास्तविक दुनिया के रिफैक्टरिंग मानल जाय जे हम समय क्षेत्र मे आयोजनक समय निर्धारित करबाक लेल एकटा ऐप बना रहल छी. ई ऐप केरऽ एगो हिस्सा एगो फंक्शन छै, getEventTimes, जे एक ISO 8601 स्ट्रिंग लै छै जे घटना केरऽ समय आरू तारीख, एक स्थानीय समय क्षेत्र, आरू एक लक्ष्य समय क्षेत्र क॑ दर्शाबै छै । फंक्शन दूनू समय क्षेत्र मे घटना कें लेल फॉर्मेट कैल गेल समय आ तिथि स्ट्रिंग बनायत छै. यदि फंक्शन कें एकटा इनपुट स्ट्रिंग देल गेल छै जे वैध समय/तिथि स्ट्रिंग नहि छै, त’ ओ एकटा त्रुटि फेंकत. एतय मूल कार्यान्वयन छै, जे मोमेंट (मोमेंट-टाइमजोन पैकेज कें उपयोग कें सेहो आवश्यकता छै) कें उपयोग करयत छै.

'क्षण-समयक्षेत्र' सँ क्षण आयात करू;

function getEventTimes (inputString, उपयोगकर्तासमयक्षेत्र, लक्ष्यसमयक्षेत्र) { const timeFormat = 'एमएमएम डी, वाईवाईवाईवाई, एच: मिमी: एसएस एक जेड';

// 1. उपयोगकर्ता के समय क्षेत्र में प्रारंभिक क्षण बनाएँ const घटनासमय = क्षण.tz ( inputString, 1999। moment.ISO_8601, // एकटा ISO 8601 स्ट्रिंग के अपेक्षा करू true, // सख्त पार्सिंग उपयोगकर्तासमयक्षेत्र );

// एकटा त्रुटि फेंकू जँ inputString कोनो वैध तिथिक प्रतिनिधित्व नहि केलक if (! घटनासमय.वैध ()) { throw new Error ('अमान्य तिथि / समय इनपुट'); } .

// 2. लक्ष्य समय की गणना करे | // CRITICAL: हमरा सब के क्लोन करय पड़त, या 'eventTime' हमेशा के लेल बदलि जायत! const targetTime = घटनासमय.क्लोन ().tz (लक्ष्यसमयक्षेत्र);

return { स्थानीय: घटनासमय.स्वरूप (समय प्रारूप), लक्ष्य: targetTime.format (समय प्रारूप), 2019। }; } .

const शेड्यूल = getEventTimes ( '२०२६-०३-०५T१५:००-०५:००', २. 'अमेरिका/न्यू_यॉर्क', 1999। 'यूरोप/लंदन', 1999। );

कंसोल.लॉग (अनुसूची.स्थानीय); // 5 मार्च, 2026, 3:00:00 बजे ईएसटी

कंसोल.लॉग (अनुसूची.लक्ष्य); // ५ मार्च २०२६, रात्रि ८:००:०० बजे जीएमटी

एहि उदाहरण मे, हम ISO 8601 क अपेक्षित तिथि प्रारूप क उपयोग क’ रहल छी, जे सहायक रूप स’ Moment मे निर्मित अछि । हम सख्त पार्सिंग के सेहो उपयोग क’ रहल छी, जकर मतलब अछि जे मोमेंट कोनो एहन तारीख स्ट्रिंग सं अनुमान लगेबाक प्रयास नहि करत जे प्रारूप सं मेल नहि खाइत हो. यदि गैर-ISO तारीख स्ट्रिंग पास करल गेलय छै, त एकर परिणाम एकटा अमान्य तिथि ऑब्जेक्ट होयत, आओर हम एकटा त्रुटि फेंकैत छी. टेम्पोरल कार्यान्वयन देखबा मे समान अछि, मुदा किछु प्रमुख अंतर अछि ।

function getEventTimes (inputString, उपयोगकर्तासमयक्षेत्र, लक्ष्यसमयक्षेत्र) { // 1. इनपुट कए सीधा एकटा Instant मे पार्स करू, फेर बनाउ // उपयोगकर्ता के क्षेत्र में एक ZonedDateTime. const तत्काल = अस्थायी.तत्काल.से (इनपुटस्ट्रिंग); const eventTime = तत्काल.toZonedDateTimeISO (उपयोगकर्तासमयक्षेत्र);

// 2. लक्ष्य क्षेत्र मे परिवर्तित करू // ई स्वचालित रूप सँ एकटा NEW ऑब्जेक्ट वापस करैत अछि; 'eventTime' सुरक्षित अछि। const targetTime = घटनासमय.समयक्षेत्र के साथ (लक्ष्यसमयक्षेत्र);

// 3. Intl (बिल्ट-इन) का उपयोग कर प्रारूप const विकल्प = { 1। वर्ष: 'संख्यात्मक', 1999। मास: 'लघु', २. दिन: 'संख्यात्मक', 1999। घण्टा: 'संख्यात्मक', 1999। मिनट: '२ अंक', २. दोसर : '२ अंक', २. timeZoneName: 'लघु'। };

return { स्थानीय: eventTime.toLocaleString (नेविगेटर.भाषा, विकल्प), लक्ष्य: targetTime.toLocaleString (नेविगेटर.भाषा, विकल्प) }; } .

const शेड्यूल = getEventTimes ( '२०२६-०३-०५T१५:००-०५:००', २. 'अमेरिका/न्यू_यॉर्क', 1999। 'यूरोप/लंदन', 1999। );

कंसोल.लॉग (अनुसूची.स्थानीय); // 5 मार्च, 2026, 3:00:00 बजे ईस्ट

कंसोल.लॉग (अनुसूची.लक्ष्य); // ५ मार्च २०२६, ८:००:०० बजेउप्रान्त जीएमटी

Moment के साथ, हमरा सब क॑ स्पष्ट रूप स॑ परिणामस्वरूप तिथि स्ट्रिंग लेली एगो फॉर्मेट स्ट्रिंग निर्दिष्ट करै ल॑ पड़तै । उपयोगकर्ता केरऽ स्थान या लोकेल चाहे जे भी होय, आयोजन केरऽ समय हमेशा Mar 5, 2026, 3:00:00 के रूप म॑ फॉर्मेट करलऽ जैतैpm EST। संगहि, हमरा लोकनि केँ स्पष्ट रूप सँ अपवाद फेक’ नहि पड़त. यदि कोनो अमान्य स्ट्रिंग Temporal.Instant.from मे पास कएल गेल अछि, Temporal हमरा सभक लेल अपवाद फेंकत. एकटा बात ध्यान देबय के अछि जे सख्त पार्सिंग के संग सेहो मोमेंट वर्जन एखनो बेसी नम्र अछि. टेम्पोरल कें लेल स्ट्रिंग कें अंत मे समय क्षेत्र ऑफसेट कें आवश्यकता होयत छै. अहां कें इहो ध्यान देबाक चाही जे चूँकि हम navigator.language कें उपयोग क’ रहल छी, इ कोड केवल ब्राउज़र वातावरण मे चलत, कियाकि नेविगेटर Node.js वातावरण मे परिभाषित नहि कैल गेल छै. टेम्पोरल कार्यान्वयन ब्राउज़र कें वर्तमान लोकेल (navigator.language) कें उपयोग करयत छै, अइ कें लेल उपयोगकर्ता कें स्वचालित रूप सं घटना समय कें ओकर स्थानीय समय प्रारूप मे फॉर्मेट करल जैतय. एन-यूएस लोकेल में, ई 5 मार्च, 2026, 3:00:00 बजे EST अछि. लेकिन, अगर उपयोगकर्ता लंदन म॑ छै, उदाहरण लेली, त॑ आयोजन के समय ५ Mar 2026, 15:00:00 GMT-5 के रूप म॑ फॉर्मेट करलऽ जैतै । सारांश

कर्म मोमेंट.जेस लौकिक वर्तमान समय क्षण () 1। अस्थायी.अब.जोन तिथिसमयISO ()। पार्सिंग आईएसओ क्षण(स्ट्र) २. अस्थायी.तत्काल.से (str) समय जोड़ू .add(7, 'दिन') (उत्परिवर्तन) .add ({ दिन: 7 }) (नया वस्तु) अंतर .diff (अन्य, 'घंटे') .चूंकि(अन्य).घंटा समय क्षेत्र .tz('जोन/नाम') २. .withTimeZone ('क्षेत्र / नाम')

पहिल नजरि मे अंतर कनि अलग भ सकैत अछि (आ Temporal क मामला मे, कखनो काल बेसी वर्बोज आ बेसी सख्त) वाक्य रचना, मुदा Moment.js पर Temporal क उपयोग करबा मे कईटा प्रमुख फायदा अछि:

बेसी स्पष्ट हेबाक मतलब कम आश्चर्य आ अनचाहा बग। क्षण बेसी नम्र बुझाइत होयत, मुदा एहि मे “अनुमान” शामिल अछि, जकर परिणाम कखनो काल गलत तिथि सेहो भ’ सकैत अछि । जँ अहाँ Temporal केँ किछु अमान्य दैत छी तँ ओ त्रुटि फेकैत अछि । जँ कोड चलैत अछि त’ अहाँ केँ बुझल अछि जे अहाँ केँ वैध तिथि भेटि गेल अछि. मोमेंट एप्लीकेशन कें बंडल मे महत्वपूर्ण आकार जोड़ सकय छै, खासकर अगर अहां मोमेंट-टाइमजोन पैकेज कें उपयोग करय रहल छी. टेम्पोरल किछु नहि जोड़ैत अछि (एक बेर जखन ई अहाँक लक्ष्य ब्राउज़र मे भेजल गेल अछि). अपरिवर्तनीयता अहां कें ई विश्वास देयत छै की तारीख रूपांतरण आ संचालन करय कें समय अहां कहियो डाटा कें नुकसान या ओवरराइट नहि करब. समय कें अलग-अलग प्रतिनिधित्व (Instant, PlainDateTime, ZonedDateTime) अहां कें आवश्यकताक कें आधार पर, जतय Moment हमेशा एकटा UTC टाइमस्टैम्प कें आसपास एकटा रैपर छै. टेम्पोरल तिथि स्वरूपण कें लेल Intl एपीआई कें उपयोग करयत छै, जेकर मतलब छै कि अहां बिना स्पष्ट रूप सं टोकन निर्दिष्ट करय कें लोकेल-जागरूक प्रारूपण करय सकय छी.

पॉलीफिल पर नोट्स जेना कि पहिने कहल गेल अछि, एकटा Temporal polyfill उपलब्ध अछि, जे @js-temporal/polyfill नामक npm पैकेज क रूप मे वितरित अछि । अगर अहां आइ टेम्पोरल के इस्तेमाल करय चाहय छी तं सफारी सन ब्राउजर के सपोर्ट करय लेल अहां के एहि पॉलीफिल के जरूरत पड़त जे एखन धरि एपीआई नहिं भेजने अछि. एहि सं खराब खबर ई अछि जे एहि सं अहां के बंडल के साइज मे बढ़ोतरी होएत. नीक खबर ई छै कि ई अखनी भी मोमेंट या मोमेंट-टाइमजोन स॑ काफी कम जोड़ै छै । एतय बंडल आकारक कें तुलना कैल गेल छै जैना की Bundlephobia.com कें रिपोर्ट कैल गेल छै, जे एकटा वेबसाइट छै जे npm पैकेज आकारक कें जानकारी प्रस्तुत करयत छै (बंडलफोबिया विश्लेषण देखय कें लेल प्रत्येक पैकेज कें नाम पर क्लिक करूं):

पैकेज लघुकृत मिनिफाइड एवं gzipped @ जेएस-टेम्पोरल/पॉलीफिल 154.1 केबी 44.1 केबी क्षण 294.4 केबी 75.4 केबी क्षण-समय क्षेत्र १ एमबी 114.2 केबी

पॉलीफिल म॑ भी ऐतिहासिक रूप स॑ मेमोरी केरऽ उपयोग के आसपास कुछ प्रदर्शन के मुद्दा रहलऽ छै, आरू ई लेख लिखै के समय, एकरा अल्फा अवस्था म॑ मानलऽ जाय छै । एहि कारणेँ जा धरि ई बेसी परिपक्व अवस्था मे नहि पहुँचि जायत ता धरि एकर उपयोग उत्पादन मे नहि करय चाहब । दोसर नीक खबरि ई अछि जे आशा अछि जे पॉलीफिल के बेसी दिन तक जरूरत नहिं पड़त (जखन तक अहां के पुरान ब्राउजर के सपोर्ट करय के जरूरत नहिं पड़त, बेशक). ई लेख लिखै के समय टेम्पोरल क्रोम, एज, आरू फायरफॉक्स म॑ भेजलऽ गेलऽ छै । सफारी म॑ ई अभी पूरा तरह स॑ तैयार नै छै, हालांकि ई नवीनतम टेक्नोलॉजी प्रीव्यू प॑ रनटाइम फ्लैग के साथ उपलब्ध नजर आबी रहलऽ छै ।

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free