जावास्क्रिप्टांत बरयल्लो चड करून खंयच्याय प्रकारचो ऍप्लिकेशन कांय क्षमतेन वेळ वा तारखां वांगडा काम करता. सुरवेक हें बिल्ट-इन डेट एपीआय मेरेन मर्यादीत आशिल्लें. ह्या एपीआयंत मुळावी कार्यक्षमताय आसपावीत केल्या, पूण ती कितें करूंक शकता तातूंत सामकी मर्यादीत आसा. Moment.js सारकिले तिसऱ्या पक्षाचे लायब्ररी, आनी उपरांत Intl APIs आनी नवे Temporal API सारकिले बिल्ट-इन API, वेळ आनी तारखां वांगडा काम करपाक खूब चड लवचीकता जोडटात. क्षणाचो उदय आनी पडप.js Moment.js ही वेळ आनी तारखां कडेन काम करपा खातीर बळिश्ट उपयुक्तताय आशिल्ली जावास्क्रिप्ट लायब्ररी आसा. तातूंत मुळाव्या तारीख एपीआयंतल्यान गळून पडपी वैशिश्ट्यांचो आस्पाव जाता, जशे की वेळ क्षेत्र हाताळणी, आनी जायत्यो सामान्य कार्यावळी सोपी करतात. मोमेंटांत तारखां आनी वेळां स्वरूपीत करपाखातीर कार्यांचोय आस्पाव जाता. जायत्या वेगवेगळ्या उपेगांत तो व्हड प्रमाणांत वापरांत आशिल्लो ग्रंथालय जालो. पूण मोमेंटाकय मुद्द्यांत आपलो वांटो आशिल्लो. ही एक व्हडली लायब्ररी आसा, आनी ऍप्लिकेशनाच्या बंडल आकारांत म्हत्वाचें जोडूंक शकता. लायब्ररी झाडां हालोवपाक तेंको दिना (आधुनीक बंडलरांचें एक खाशेलपण जें लायब्ररींचे वापरूंक नाशिल्ले भाग काडून उडोवंक शकता), तुमी फकत ताचीं एक वा दोन कार्यां वापरल्यार लेगीत पुराय Moment लायब्ररी समाविष्ट केल्या. Moment चो आनीक एक प्रस्न म्हणल्यार तातूंतल्यान तयार केल्लीं वस्तू बदलपी आसतात. Moment वस्तूचेर कांय फंक्शनां कॉल केल्यार दुश्परिणाम जातात आनी त्या वस्तूच्या मोलांत उत्परिवर्तन जाता. हाका लागून अनपेक्षीत वागणूक वा बग जावंक शकतात. 2020 वर्सा मोमेंटाच्या देखरेख करप्यांनी लायब्ररी देखरेख मोडांत घालपाचें थारायलें. खंयचोच नवो वैशिश्ट्य विकास जायना, आनी देखरेख करपी नव्या प्रकल्पां खातीर वापरपा आड शिफारस करतात. हेर जावास्क्रिप्ट तारीख लायब्ररी आसात, जशीं date-fns, पूण शारांत नवो खेळगडो आसा, एक एपीआय थेट जावास्क्रिप्टांत बांदिल्लो: तात्पुरतो. तो एक नवो मानक आसा जो मूळ तारीख एपीआयचे बुराक भरता तशेंच Moment आनी हेर लायब्ररींत मेळपी कांय मर्यादा सोडयता. तात्पुरतें म्हणल्यार कितें? टेम्पोरल हो ECMAScript मानकांत जोडिल्लो नवो वेळ आनी तारीख API आसा, जो आधुनीक जावास्क्रिप्ट व्याख्या करता. मार्च 20266 मेरेन, ती TC39 प्रक्रियेच्या 4 व्या पांवड्यार पावल्या (जावास्क्रिप्ट भाशेंतल्या प्रस्ताव आनी जोडणींचेर देखरेख दवरपी समिती), आनी ECMAScript स्पेसिफिकेशनाच्या फुडल्या आवृत्तींत ताचो आस्पाव जातलो. हें पयलींच जायत्या ब्राउझरांनी चालीक लायलां: क्रोम 144+ आनी फायरफॉक्स 139+, आनी सफारी बेगीनच फाटोफाट येतली अशी अपेक्षा आसा. समर्थीत नाशिल्ल्या ब्राउझरांखातीर आनी Node.js खातीरय पॉलीफिल उपलब्ध आसा. टेम्पोरल एपीआय अशीं वस्तू तयार करता जीं, सादारणपणान, काळांतल्या खिणांचें प्रतिनिधित्व करतात. हे दिल्ल्या वेळ क्षेत्रांतले पूर्णवेळ आनी तारीख शिक्के आसूं येतात, वा कसलोच वेळ क्षेत्र वा तारखेची म्हायती नासतना “वण्टी घड्याळ” वेळाचो सामान्य दृष्टांत आसूं येता. टेम्पोरलाचीं कांय मुखेल खाशेलपणां अशीं आसात:
तारखां आशिल्ले वा तारखे नाशिल्ले वेळ.काळाची वस्तू विशिश्ट तारखेचेर विशिश्ट वेळ, वा कसलीच तारखेची म्हायती नाशिल्ल्या वेळाचें प्रतिनिधित्व करूंक शकता. एक विशिश्ट तारीख, वेळ नासतना,य दाखोवंक मेळटा. वेळ क्षेत्र आदार.काळाची वस्तू पुरायपणान वेळ क्षेत्राची जाणविकाय आसता आनी वेगवेगळ्या वेळ क्षेत्रांतल्यान रुपांतरीत करूं येता. मोमेंट वेळ क्षेत्रांकय तेंको दिता, पूण ताका अतिरिक्त मोमेंट-टायमझोन लायब्ररी जाय. Immutability.एकदां Temporal वस्तू तयार जाली म्हणटकच ती बदलूंक मेळना. वेळ अंकगणित वा वेळ क्षेत्र रुपांतरां मुळाव्या वस्तूंत बदल करिनात. ताचे बदला ते नवी Temporal वस्तू तयार करतात. 1-आधारीत अनुक्रमणिका.तारीख एपीआय (तशेंच खीण) कडेन बगांचे एक सामान्य स्रोत म्हणल्यार म्हयने शून्य-अनुक्रमणिका आसात. हाचो अर्थ जानेवारी म्हयनो 0 म्हयनो, खऱ्या जिवितांत आमी सगळ्यांक समजता तशें 1 म्हयनो न्हय. टेम्पोरल 1-आधारीत अनुक्रमणिका वापरून हें सुदारता — जानेवारी हो म्हयनो 1. तो ब्राउझरांत बांदला.Temporal हो ब्राउझरांतलोच API आशिल्ल्यान, तो तुमच्या ऍप्लिकेशनाच्या बंडल आकारांत कांयच जोडना.
तशेंच तारीख एपीआय वचना हें लक्षांत घेवप म्हत्वाचें. Temporal ह्या API च्या जाग्यार वता आसतना, तो काडून उडोवप वा नाका म्हणप ना. ब्राउझरांनी अचकीत तारीख एपीआय काडून उडयल्यार जायते ऍप्लिकेशनां मोडटले. पूण आतां देखरेख मोडांत मोमेंट हो दायजी प्रकल्प मानतात हेंय लक्षांत दवरात. उरिल्ल्या लेखांत, आमी Moment-आधारीत कोड नव्या Temporal API कडेन स्थलांतरीत करपा खातीर कांय “रेसिपी” पळयतले. रिफॅक्टरिंग सुरू करूंया! तारीख आनी वेळ वस्तू तयार करप तारखां आनी वेळ हाताळचे पयलीं तांचें प्रतिनिधित्व करपी वस्तू तयार करच्यो पडटात. सद्याची तारीख आनी वेळ दाखोवपी Moment वस्तू तयार करपाक, moment फंक्शन वापरात. const आतां = खीण (); console.log (आतां); // खीण <2026-02-18T21:26:29-05:00>
ही वस्तू आतां गरज पडल्यार स्वरूपीत वा हाताळणी करूं येता.
// UTC कडेन रुपांतरीत करचें //शिटकावणी: हाका लागून Moment वस्तू उत्परिवर्तन जाता आनी ती UTC मोडांत दवरता! कंसोल.लॉग (आतां.utc ()); // खीण <2026-02-19T02:26:29Z>
// स्वरूपीत स्ट्रिंग छापचें - आतां UTC वेळ वापरता हें लक्षांत दवरात console.log (आतां.स्वरूप ('एमएम / डीडी / YYYY hh: मिमी: ss एक')); // ०२/१९/२०२६ ०२:२७:०७ सकाळीं
Moment विशीं लक्षांत दवरपाची मुखेल गजाल म्हळ्यार Moment वस्तूंत सदांच वेळ आनी तारखेची म्हायती आसता. तुमकां फकत वेळ म्हायती वांगडा काम करपाची गरज आसल्यार, हें चड करून बरें आसता, पूण ताका लागून दिसाच्या उजवाडाचो वेळ वा लीप वर्सां सारकिल्या परिस्थितींत अनपेक्षीत वागणूक जावंक शकता, जंय तारखेचो वेळ गणनेचेर परिणाम जावंक शकता. तात्पुरतें चड लवचीक आसता. तुमी Temporal.Instant वस्तू तयार करून सद्याची तारीख आनी वेळ दाखोवपी वस्तू तयार करूंक शकतात. “युग” (१ जानेवारी १९७० दिसा मध्यान रातचो यूटीसी) उपरांतच्या काळान व्याख्या केल्ल्या काळांतल्या बिंदूचें हें प्रतिनिधित्व करता. टेम्पोरल ह्या खिणाक नॅनोसेकंद पातळेचेर सुक्ष्मतायेन वेळार संदर्भ दिवंक शकता. const आतां = तात्पुरतें.आतां.क्षणिक ();
// युगासावन कच्चे नॅनोसेकंद पळयात console.log (आतां.epochNanoseconds); // 1771466342612000000न
// UTC खातीर स्वरूप console.log (आतां.toString ()); // 2026-02-19टी01:55:27.844झेड
// एका विशिश्ट वेळ क्षेत्राखातीर स्वरूप console.log (now.toString ({ वेळक्षेत्र: 'अमेरिका / न्यू_यॉर्क' })); // 2026-02-18टी20:56:57.905-05:00
Temporal.From static पद्दत वापरून विशिश्ट वेळ आनी तारखे खातीरय इन्स्टंट वस्तू तयार करूं येतात.
const myInstant = तात्पुरतें.Instant.from ('2026-02-18T21:10:00-05:00');
// थळाव्या वेळ क्षेत्रांत झटपट स्वरूपीत करचें. हें फकत नियंत्रण दवरता हें लक्षांत दवरात // स्वरूपण - moment.utc करता तशें तें वस्तूक उत्परिवर्तन करीना. console.log (myInstant.toString ({ वेळक्षेत्र: 'अमेरिका / न्यू_यॉर्क' })); // 2026-02-18टी21:10:00-05:00
तुमी हेर प्रकारचे Temporal वस्तूय तयार करूंक शकतात, तातूंत:
Temporal.PlainDate: वेळाची म्हायती नाशिल्ली तारीख. Temporal.PlainTime: तारखेची म्हायती नाशिल्लो वेळ. Temporal.ZonedDateTime: विशिश्ट वेळ क्षेत्रांतली तारीख आनी वेळ.
हातूंतल्या दरेकाक from पद्दत आसा जी तारीख आनी/वा वेळ निर्देशीत करपी वस्तू वांगडा कॉल करूं येता, वा विश्लेशण करपाक तारीख स्ट्रिंग. // फक्त एक तारीख const today = तात्पुरती.सादीतारीख.सावन ({ वर्स: २०२६, २०१८. म्हयनो: 2, // टिप आमी फेब्रुवारी खातीर 2 वापरतात दीस: १८ }); console.log (आयज.toString ()); // 2026-02-18 ह्या दिसा
// फक्त एक वेळ const lunchTime = तात्पुरतो.सादा वेळ.सावन ({ तास: 12 }); console.log (दुपारचो वेळ.टूस्ट्रिंग ()); // 12:00:00 वरांचेर
// अमेरिकेच्या उदेंत वेळ क्षेत्रांतली एक तारीख आनी वेळ const dueAt = तात्पुरतो.झोनडडेटवेळ.from ({ timeZone: 'अमेरिका/न्यूयॉर्क', वर्स: २०२६, २०१८. म्हयनो: ३, २. दीस: १, २. तास: १२, ८. मिनट: ०, ८. दुसरें: ० }); कंसोल.लॉग (dueAt.toString ()); // 2026-03-01T12:00:00-05:00[अमेरिका/न्यूयॉर्क]
पार्सिंग करप आमी तारीख आनी वेळाची म्हायती प्रोग्रामेटिक निर्मिती कव्हर केल्या. आतां पार्सिंगाचेर पळोवया. पार्सिंग हो एक वाठार जंय मोमेंट बिल्ट-इन टेम्पोरल एपीआय परस चड लवचीक आसा. तुमी तारीख स्ट्रिंग मोमेंट फंक्शनाक पास करून विश्लेशण करूंक शकतात. एकूच आर्ग्युमेंट आसल्यार, Moment ISO तारीख स्ट्रिंग अपेक्षा करता, पूण वापरिल्लें तारीख स्वरूप स्पश्ट करपी दुसरो आर्ग्युमेंट दिल्यार तुमी पर्यायी स्वरूप वापरूं येतात.
const isoDate = खीण ('2026-02-21T09:00:00'); const formattedDate = खीण ('2/21/26 9:00:00', 'एम / डी / वायवाय एच: मिमी: एसएस');
कंसोल.लॉग (आयसोडेट); // खीण <2026-02-21T09:00:00-05:00>
console.log (स्वरूपीत तारीख); // खीण <2026-02-21T09:00:00-05:00>
पोरन्या आवृत्त्यांनी, खंयचीय मनमानी स्वरूपीत तारीख स्ट्रिंग विश्लेशण करपाक Moment सगळ्यांत बरो अदमास करतलो. हाका लागून अदमासा भायर परिणाम जावंक शकतात. देखीक, 02-03-2026 फेब्रुवारी 2 काय 3 मार्च? ह्या कारणा खातीर, Moment ची नवी आवृत्ती जर ती ISO स्वरूपीत तारीख स्ट्रिंग नासतना कॉल केल्या जाल्यार (जो मेरेन जाय आशिल्ल्या स्वरूपा वांगडा दुसरो युक्तिवादय दिवंक ना) जाल्यार एक म्हत्वाची नाका म्हणपाची शिटकावणी दाखयतात. टेम्पोरल फकत विशिश्ट रितीन स्वरूपीत केल्ली तारीख स्ट्रिंग विश्लेशण करतले. स्ट्रिंग ISO 8601 स्वरूपाक वा ताच्या विस्ताराक, RFC 9557. अनुरूप नाशिल्ली तारीख स्ट्रिंग from पद्दतीक पास केल्यार, Temporal RangeError उडयतलो.
// RFC 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 otherDate = तात्पुरतें.इंस्टंट.from ('2/21/26 9:00:00'); // RangeError: तात्पुरती त्रुटी: वर्साचें मोल विश्लेशण करतना अवैध वर्ण.
तारीख स्ट्रिंगाची अचूक गरज तुमी खंयच्या प्रकारची Temporal वस्तू तयार करतात ताचेर आदारून आसता. वयल्या उदाहरणांत, Temporal.Instant कडेन पुराय ISO जाय8601 वा RFC 9557 तारीख स्ट्रिंग वेळ क्षेत्र ऑफसेटा वांगडा तारीख आनी वेळ निर्देशीत करता, पूण तुमी फकत तारीख स्वरूपाचो उपसंच वापरून PlainDate वा PlainTime वस्तूय तयार करूंक शकतात. const myDate = तात्पुरती.सादी तारीख.सावन ('2026-02-21'); console.log (माझी तारीख.टूस्ट्रिंग ()); // 2026-02-21 ह्या दिसा
const myTime = तात्पुरतो.सादो वेळ.सावन ('09:00:00'); console.log (माझो वेळ.टूस्ट्रिंग ()); // ०९:००:०० वरांचेर
लक्षांत दवरात की ह्यो स्ट्रिंग अजूनय अपेक्षीत स्वरूपाक पाळो दिवंक जाय, नाजाल्यार त्रुटी उडयतले.
// एक अनानुरूप वेळ स्ट्रिंग्स वापरप. हे सगळे RangeError उडयतले. तात्पुरतो.सादा वेळ.सावन ('9:00'); टेम्पोरल.प्लेनटायम.फ्राम ('9:00:00 AM');
प्रो टिप: बिगर-ISO स्ट्रिंग्स हाताळपTemporal विस्वासपात्रतायेक प्राधान्य दिता देखून, तो 02-01-2026 सारकिल्या स्ट्रिंगाच्या स्वरूपाचो अदमास करपाचो यत्न करचो ना. तुमचो डेटा स्त्रोत अशे स्ट्रिंग वापरता जाल्यार, तुमकां Temporal कडेन वापरपाचो यत्न करचे पयलीं 2026-02-01 सारकिल्या ISO स्ट्रिंगांत मोलां परतून मांडपाक कांय स्ट्रिंग मॅनिपुलेशन करचें पडटलें.
स्वरूपण करप एकदां तुमचे कडेन Moment वा Temporal वस्तू मेळ्ळ्या उपरांत, तुमकां घडये कांय वेळार ती स्वरूपीत स्ट्रिंगांत रुपांतरीत करपाची इत्सा जातली. हो एक प्रसंग जंय मोमेंट मात्सो चड संक्षिप्त आसा. तुमी वस्तूची स्वरूप पद्दत टोकनांच्या स्ट्रिंगान कॉल करतात जी जाय आशिल्ल्या तारखेच्या स्वरूपाचें वर्णन करता. const तारीख = खीण ();
console.log (तारीक.स्वरूप ('एमएम / डीडी / YYYY')); // 02/22/2026 दिसा
console.log (तारीक.स्वरूप ('MMMM Do YYYY, h: mm: ss एक')); // 22 फेब्रुवारी 2026, रात 8:18:30
दुसरे वटेन टेम्पोरलांत मात्शें चड वर्बोस आसचें पडटा. Instant सारकिल्या तात्पुरत्या वस्तूंक toLocaleString पद्दत आसता जी वस्तूचे गुणधर्म म्हणून निर्देशीत केल्ले वेगवेगळे स्वरूपण पर्याय स्वीकारता.
const तारीख = तात्पुरतें.आतां.क्षणिक ();
// कसलेच आर्ग्युमेंट नासतना, आमकां सद्याच्या लोकॅला खातीर डिफॉल्ट फॉर्मेट मेळटलें console.log (तारीक.toLocaleString ()); // 2/22/2026, 8:23:36 PM (en-US चो लोकेल गृहीत धरून)
// सानुकूल स्वरूप स्ट्रिंग तयार करपाक स्वरूपण पर्याय पास करात console.log (तारीक.toLocaleString ('en-US', { म्हयनो: 'लांब', २. दीस: 'संख्यात्मक', २. वर्स: 'संख्यात्मक', २. तास: '२ अंकांची', २. मिनट: '२ अंकांची'. })); // 22 फेब्रुवारी 2026 दिसा सांजवेळा 8:23 वरांचेर
// फकत तुमकां जाय आशिल्लीं क्षेत्रां स्वरूप स्ट्रिंगांत पास करात console.log (तारीक.toLocaleString ('en-US', { म्हयनो: 'लघु', २. दीस: 'संख्यात्मक'. })); // 22 फेब्रुवारी
तात्पुरती तारीख स्वरूपण प्रत्यक्षांत हुडा खाला Intl.DateTimeFormat API (जो आधुनीक ब्राउझरांनी पयलींच सहज उपलब्ध आसा) वापरता. म्हणल्यार तुमी तुमच्या सानुकूल स्वरूपण पर्यायां सयत परत वापरपाक येवपी DateTimeFormat वस्तू तयार करूंक शकतात, मागीर Temporal वस्तू ताचे स्वरूपण पद्दतींत पास करूंक शकतात. हाका लागून, Moment सारके सानुकूल तारीख स्वरूपांक तेंको दिना. तुमकां ‘Q1 2026’ वा हेर खाशेले स्वरूपण सारकें कितेंय जाय जाल्यार, तुमकां कांय सानुकूल तारीख स्वरूपण कोड वा तिसऱ्या पक्षाच्या लायब्ररी खातीर पावपाची गरज आसूं येता. const स्वरूपण = नवो Intl.DateTimeFormat ('en-US', { म्हयनो: '२ अंक', २. दीस: '२ अंक', २. वर्स: 'संख्यात्मक'. });
const तारीख = तात्पुरतें.आतां.क्षणिक (); console.log (स्वरूपक.स्वरूप (तारीक)); // 02/22/2026 दिसा
Moment’s फॉर्मेटींग टोकन बरोवपाक सोंपें आसतात, पूण ते लोकॅल-फ्रेंडली नात. स्वरूप म्हयनो/दिस क्रम सारकिल्ल्यो गजाली “हार्ड कोड” स्ट्रिंग करता. Temporal करता तशें संरचना वस्तू वापरपाचो फायदो म्हणल्यार तो आपोआप खंयच्याय दिल्ल्या लोकॅलाक अनुकूल जातलो आनी योग्य स्वरूप वापरतलो. const तारीख = तात्पुरतें.आतां.क्षणिक ();
const स्वरूपविकल्प = { 1.1. म्हयनो: 'संख्यात्मक', २. दीस: 'संख्यात्मक', २. वर्स: 'संख्यात्मक'. };
console.log (तारीक.toLocaleString ('en-US', स्वरूपविकल्प)); // 2/22/2026 दिसा
console.log (तारीक.toLocaleString ('en-GB', स्वरूपविकल्प)); // 22/02/2026 दिसा
तारीख गणना करप जायत्या ऍप्लिकेशनांनी, तुमकां कांय गणना तारखेक करपाक सोंपपाक जाय. तुमकां वेळाचे एकक (दिस, वरां, सेकंद आदी) जोडपाक वा वजा करपाक जाय आसूं येता. देखीक, तुमचे कडेन सद्याची तारीक आसल्यार, तुमकां आतां सावन 1 सप्तका उपरांत वापरप्याक तारीक दाखोवंक जाय आसतली. क्षेपणास्त्र वस्तूंक जोडप आनी वजा करप अशो पद्दती आसतात आनी ते ह्यो क्रिया करतात. हे फंक्शन मोल आनी एकक घेतात, देखीक: add(7, 'days'). पूण मोमेंट आनी टेम्पोरल हांचेमदलो एक खूब म्हत्वाचो फरक म्हळ्यार ही तारीख गणना करतना मुळाव्या वस्तूंत बदल जाता आनी ताचें मूळ मोल वता. const आतां = खीण ();
console.log (आतां); // खीण <2026-02-24T20:08:36-05:00>
const nextWeek = आतां.जोडचें (7, 'दिस'); console.log (फुडल्या सप्तकांत); // खीण <2026-03-03T20:08:36-05:00>
// गोत्चा - मूळ वस्तू उत्परिवर्तित जाल्ली console.log (आतां); // खीण <2026-03-03T20:08:36-05:00>
मूळ तारीक गमावची न्हय म्हूण, तुमी प्रत तयार करपाक Moment वस्तूचेर clone कॉल करूंक शकतात. आतां const= खीण (); const nextWeek = आतां.क्लोन (). जोडचें (7, 'दिस');
console.log (आतां); // खीण <2026-02-24T20:12:55-05:00>
console.log (फुडल्या सप्तकांत); // खीण <2026-03-03T20:12:55-05:00>
दुसरे वटेन Temporal वस्तू अपरिवर्तनीय आसतात. एकदां तुमी Instant, PlainDate, आनी हेर सारकी वस्तू तयार केल्या उपरांत, त्या वस्तूचें मोल केन्नाच बदलचें ना. तात्पुरत्या वस्तूंक जोडप आनी वजा करप ह्योय पद्दती आसतात. खंयच्या वस्तू प्रकारांत खंयचे वेळ एकक जोडूंक मेळटात हाचेर टेम्पोरल मात्शें पिकी आसता. देखीक, तुमी क्षणांत दीस जोडूंक शकना:
const आतां = तात्पुरतें.आतां.क्षणिक (); const nextWeek = आतां.जोडचें ({ दीस: 7 }); // RangeError: तात्पुरती त्रुटी: सगळ्यांत व्हडलो एकक तारीख एकक आसूंक शकना
कारण इन्स्टंट वस्तू UTC त वेळाच्या विशिश्ट बिंदूचें प्रतिनिधित्व करतात आनी कॅलेंडर-अज्ञेयवादी आसतात. कारण दिसाची लांबाय डेलाइट सेव्हिंग वेळ सारकिल्या वेळ क्षेत्राच्या नेमाचेर आदारीत बदलूं येता, ही गणना क्षणीक उपलब्ध ना. तुमी मात हेर प्रकारच्या वस्तूंचेर ही क्रिया करूंक शकतात, जशे की PlainDateTime: const आतां = तात्पुरतें.आतां.सादी तारीखवेळISO (); console.log (आतां.toLocaleString ()); // २/२४/२०२६, ८:२३:५९ वा
const nextWeek = आतां.जोडचें ({ दीस: 7 });
// मूळ PlainDateTime बदलूंक ना हें लक्षांत दवरात console.log (आतां.toLocaleString ()); // २/२४/२०२६, ८:२३:५९ वा
console.log (फुडल्या सप्तकांत.toLocaleString ()); // ३/३/२०२६, ८:२३:५९ वा
तशेंच दोन Moment वा Temporal वस्तूं मदीं कितलो वेळ आसा हाचोय गणना करूं येता. Moment’s diff function कडेन, तुमकां granularity खातीर एक एकक पुरवण करचो पडटलो, नाजाल्यार तो फरक मिलीसेकंदांत परत दितलो. const date1 = खीण ('2026-02-21T09:00:00'); const date2 = खीण ('2026-02-22T10: 30:00');
console.log (तारीक2.diff (तारीक1)); // 91800000 हें नांव
console.log (तारीक2.diff (तारीक1, 'दिस')); // 1. हें नांव
Temporal वस्तू वांगडा हें करपाक, तुमी दुसरी Temporal वस्तू ताच्या until वा since पद्दतींक पास करूंक शकतात. हाका लागून वेळ फरकाची म्हायती आशिल्ली Temporal.Duration वस्तू परत मेळटा. Duration वस्तूक फरकाच्या दरेका घटकाखातीर गुणधर्म आसतात, आनी तशेंच वेळ फरक दाखोवपी ISO 8601 काळ स्ट्रिंग तयार करूंक शकता.
const date1 = तात्पुरतो.सादी तारीखवेळ.from ('2026-02-21T09:00:00'); const date2 = तात्पुरतो.सादी तारीखवेळ.from ('2026-02-22T10:30:00');
// largestUnit प्रतिनिधित्व करपाक वेळाचो सगळ्यांत व्हडलो एकक निर्देशीत करता // कालावधी गणनेंत const diff = date2.since (तारीक1, { सगळ्यांत व्हडलेंएकक: 'दिस' });
कंसोल.लॉग (diff.days); // 1. हें नांव
कंसोल.लॉग (diff.hours); // 1. हें नांव
कंसोल.लॉग (diff.mintes); // 30 हें नांव
कंसोल.लॉग (diff.toString ()); // पी१डीटी१एच३०एम // (ISO 8601 कालावधी स्ट्रिंग: 1 दीस, 1 तास, 30 मिनटां)
तारखां आनी वेळ हांची तुळा करप Moment आनी Temporal दोनूय तुमकां तारखां आनी वेळां तुळा करून खंयची दुसऱ्या पयलीं येता तें थारावपाक दितात, पूण API कडेन वेगवेगळे पद्दती आपणावपाक दितात. Moment दोन Moment वस्तूंची तुळा करपाखातीर isBefore, isAfter, आनी isSame अशो पद्दती पुरवण करता. const date1 = खीण ('2026-02-21T09:00:00'); const date2 = खीण ('2026-02-22T10: 30:00');
console.log (तारीक1.आदीं आसा (तारीक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 (तात्पुरती.सादीतारीख.तुळा करप);
वेळ क्षेत्र रुपांतरां कोर Moment लायब्ररी वेळ क्षेत्र रुपांतरांक तेंको दिना. तुमकां ही कार्यक्षमताय जाय जाल्यार, तुमकां moment-timezone पॅकेजय प्रतिष्ठापीत करपाक जाय. हें पॅकेज झाडा-हालपाक शकना, आनी देखून तुमच्या बंडल आकारांत म्हत्वाचें जोडूंक शकता. एकदां तुमी moment-timezone स्थापीत केल्या उपरांत, तुमी tz पद्दतीन Moment वस्तू वेगवेगळ्या वेळ क्षेत्रांत रुपांतरीत करूंक शकतात. हेर मोमेंट ऑपरेशनां प्रमाण हाका लागून मुळाव्या पदार्थांत उत्परिवर्तन जाताऑब्जॅक्ट. // अमेरिकेचो उदेंत वेळ मानून const आतां = खीण (); console.log (आतां); // खीण <2026-02-28T20:08:20-05:00>
// पॅसिफीक वेळांत रुपांतर करचें. // मूळ उदेंतेकडलो काळ वचून गेला. now.tz ('अमेरिका / लॉस_एंजेल्स'); console.log (आतां); // खीण <2026-02-28T17:08:20-08:00>
Temporal.ZonedDateTime वस्तू वापरतना वेळ क्षेत्र कार्यक्षमताय Temporal API त बांदल्या. ह्या वस्तूंनी withTimeZone पद्दत आसपावीत आसा जी वेळांतल्या त्याच खिणाचें प्रतिनिधित्व करपी नवो ZonedDateTime परत दिता, पूण निर्दिश्ट केल्ल्या वेळ क्षेत्रांत. // परतून अमेरिकेचो उदेंत काळ गृहीत धरून const आतां = तात्पुरतें.आतां.झोन केल्ली तारीखवेळISO (); console.log (आतां.toLocaleString ()); // 2/28/2026, 8:12:02 PM EST
// पॅसिफीक वेळांत रुपांतर करचें const nowPacific = now.withTimeZone ('अमेरिका / लॉस_एंजेल्स'); console.log (आतां पॅसिफिक.toLocaleString ()); // 2/28/2026, 5:12:02 PM पीएसटी
// मूळ वस्तू बदलूंक ना console.log (आतां.toLocaleString ()); // 2/28/2026, 8:12:02 PM EST
टिप: toLocaleString कडल्यान परत केल्लीं स्वरूपीत मोलां, नांवा प्रमाणें, लोकॅल-आदारीत आसात. नमुनो कोड en-US लोकॅलांत विकसीत केल्लो, देखून स्वरूप अशें आसा: 2/28/2026, 5:12:02 PM PST. दुसर् या लोकॅलांत हें वेगळें आसूं येता. देखीक, en-GB लोकेलांत, तुमकां 28/2/2026, 17:12:02 GMT-8 सारकें कितें तरी मेळटलें. एक रियल-वर्ल्ड रिफॅक्टरिंग समजा आमी वेळ क्षेत्रांतल्यान कार्यावळींचें वेळापत्रक करपा खातीर एक अॅप तयार करतात. ह्या ऍप्लिकेशनाचो एक भाग म्हळ्यार getEventTimes हें फंक्शन, जें घडणुकेचो वेळ आनी तारीक, थळावो वेळ क्षेत्र आनी लक्ष्य वेळ क्षेत्र दाखोवपी ISO 8601 स्ट्रिंग घेता. फंक्शन दोनूय वेळ क्षेत्रांतल्या घडणुकेखातीर स्वरूपीत वेळ आनी तारीख स्ट्रिंग्स तयार करता. फंक्शनाक वैध वेळ/तारीक स्ट्रिंग नाशिल्ली इनपुट स्ट्रिंग दिल्यार, ती त्रुटी उडयतली. हांगा मूळ कार्यान्वयन आसा, Moment वापरून (मोमेंट-टायमझोन पॅकेजीचोय वापर करपाची गरज आसा).
'खीण-वेळक्षेत्र' कडल्यान खीण आयात;
function getEventTimes (इनपुटस्ट्रिंग, वापरपी वेळक्षेत्र, लक्ष्यवेळक्षेत्र) { const timeFormat = 'एमएमएम डी, वायवायवायवाय, एच: मिमी: एसएस एक झॅड';
// 1. वापरप्याच्या वेळ क्षेत्रांत सुरवातीचो खीण तयार करचो const घडणुकेचो वेळ = क्षण.tz ( इनपुटस्ट्रिंग, 1.1. moment.ISO_8601, // ISO 8601 स्ट्रिंग अपेक्षा करात true, // कडक विश्लेशण वापरपीTimeZone );
// inputString वैध तारीक दाखोवंक ना जाल्यार त्रुटी उडोवची if (! घडणुकेचो वेळ.वैध आसा ()) { throw new Error('अवैध तारीख/वेळ इनपुट'); } .
// 2. लक्ष्य वेळ मेजचो // CRITICAL: आमी क्लोन करपाक जाय, नाजाल्यार 'eventTime' सदांखातीर बदलता! const लक्ष्यवेळ = घडणुकेचो वेळ.क्लोन ().tz (लक्ष्य वेळक्षेत्र);
return { थळावें: घडणुकेचो वेळ.स्वरूप (वेळस्वरूप), लक्ष्य: लक्ष्यवेळ.स्वरूप (वेळस्वरूप), }; } .
const वेळापत्रक = getEventTimes ( '२०२६-०३-०५टी१५:००-०५:००', 'अमेरिका/न्यू_यॉर्क', 1999. 'युरोप/लंडन', 1999. );
console.log (वेळापत्रक.स्थानीक); // 5 मार्च 2026, दनपारां 3:00:00 ईएसटी
console.log (वेळापत्रक.लक्ष्य); // 5 मार्च 2026, 8:00:00 pm जीएमटी
ह्या उदाहरणांत, आमी ISO 8601 चें अपेक्षीत तारखेचें स्वरूप वापरतात, जें उपकारकपणान Moment त बांदलां. आमी कडक पार्सिंगूय वापरतात, म्हणल्यार Moment स्वरूपाक जुळनाशिल्ल्या तारीख स्ट्रिंगान अदमास करपाचो यत्न करचो ना. जर बिगर-ISO तारीख स्ट्रिंग पास जाली जाल्यार, ताचो परिणाम अवैध तारीख वस्तू जातली, आनी आमी एक त्रुटी उडयतात. तात्पुरती अंमलबजावणी सारकी दिसता, पूण तातूंत कांय मुखेल फरक आसात.
function getEventTimes (इनपुटस्ट्रिंग, वापरपी वेळक्षेत्र, लक्ष्यवेळक्षेत्र) { // 1. इनपुट थेट इन्स्टंटांत पार्स करात, मागीर तयार करात // वापरप्याच्या झोनांतलो एक ZonedDateTime. const instant = Temporal.Instant.from (इनपुटस्ट्रिंग); const eventTime = instant.toZonedDateTimeISO (वापरपी वेळक्षेत्र);
// 2. लक्ष्य क्षेत्रांत रुपांतर करचें // हाका लागून आपोआप NEW वस्तू परत मेळटा; 'eventTime' सुरक्षीत आसा. const targetTime = घडणुकेचो वेळ.विथटायमझोन (लक्ष्यवेळझोन);
// 3. Intl वापरून स्वरूपण (बिल्ट-इन) const पर्याय = { 1.1. वर्स: 'संख्यात्मक', २. म्हयनो: 'लघु', २. दीस: 'संख्यात्मक', २. तास: 'संख्यात्मक', . मिनट: '२ अंकांची', २. दुसरें: '२ अंकांचें', २. timeZoneName: 'लघु'. };
return { थळावें: eventTime.toLocaleString (नॅव्हिगेटर.भास, पर्याय), लक्ष्य: targetTime.toLocaleString (नॅव्हिगेटर.भास, पर्याय) }; } .
const वेळापत्रक = getEventTimes ( '२०२६-०३-०५टी१५:००-०५:००', 'अमेरिका/न्यूयॉर्क', 1999. 'युरोप/लंडन', 1999. );
console.log (वेळापत्रक.स्थानीक); // 5 मार्च 2026, 3:00:00 PM EST
console.log (वेळापत्रक.लक्ष्य); // 5 मार्च 2026, 8:00:00 PM जीएमटी
Moment कडेन, आमी परिणामी तारीख स्ट्रिंगां खातीर स्पश्टपणान स्वरूप स्ट्रिंग निर्देशीत करची पडटली. वापरप्याचें स्थान वा लोकॅल कितेंय आसूं, कार्यावळीचे वेळ सदांच Mar 5, 2026, 3:00:00 अशे स्वरूपीत जातलेpm EST. तशेंच, आमी स्पश्टपणान आडवाद उडोवपाची गरज ना. अवैध स्ट्रिंग Temporal.Instant.from कडेन पास जाल्यार, Temporal आमकां आडवाद उडयतलो. एक गजाल लक्षांत घेवपासारकी म्हणल्यार खर पार्सिंग केल्यार लेगीत Moment आवृत्ती अजूनय चड नम्र आसा. टेम्पोरलाक स्ट्रिंगाच्या निमाणें वेळ क्षेत्र ऑफसेट जाय पडटा. आमी navigator.language वापरतात देखून, हो कोड फकत ब्राउझर वातावरणांत चलतलो, कारण नेव्हिगेटर Node.js वातावरणांत व्याख्या केल्लो ना हें तुमी लक्षांत घेवंक जाय. तात्पुरती कार्यान्वयन ब्राउझराचो सद्याचो लोकॅल (navigator.language) वापरता, देखून वापरप्याक आपसूकच घडणुकेचे वेळ तांच्या थळाव्या वेळ स्वरूपांत स्वरूपीत मेळटले. एन-अमेरिकन लोकॅलांत, हें 5 मार्च 2026, दनपारां 3:00:00 EST. पूण वापरपी लंडनांत आसल्यार, देखीक, कार्यावळीचे वेळ 5 Mar 2026, 15:00:00 GMT-5 अशें स्वरूपीत जातले. सारांश
कृती मोमेंट.जेस तात्पुरतें सध्याचो वेळ क्षण () 1.1. तात्पुरतें.आतां.झोन केल्ली तारीखवेळISO () ISO विश्लेशण करप क्षण(स्ट्र) 1.1. टेम्पोरल.इंस्टंट.from(str) 1.1. वेळ जोडचो .जोडप(7, 'दिस') (उत्परिवर्तन) .add({ दीस: 7 }) (नवी वस्तू) फरक पडप .diff(अन्य, 'तास') .सावन(हेर).तास वेळ क्षेत्र .tz('झोन/नांव') .withTimeZone ('झोन / नांव')
पयले नदरेन, फरक मात्सो वेगळो आसूं येता (आनी Temporal बाबतींत, केन्ना केन्नाय चड वर्बोस आनी चड कडक) वाक्यरचना, पूण Moment.js परस Temporal वापरपाचे जायते मुखेल फायदे आसात:
चड स्पश्ट जावप म्हणल्यार उणे आश्चर्य आनी अनपेक्षीत बग. खीण चड सौम्य दिसूं येता, पूण तातूंत “अदमास” आसता, जाचो परिणाम केन्ना केन्नाय चुकीचीं तारखां येवंक शकतात. Temporal कडेन कितेंय अवैध दिल्यार तें त्रुटी उडयता. कोड चललो जाल्यार तुमकां वैध तारीक मेळ्ळ्या हें कळटा. मोमेंट ऍप्लिकेशनाच्या बंडलाक म्हत्वाचो आकार जोडूंक शकता, खास करून तुमी मोमेंट-टायमझोन पॅकेज वापरतात जाल्यार. Temporal कांयच जोडना (एकदां तें तुमच्या लक्ष्य ब्राउझरांनी धाडल्या उपरांत). तारीख रुपांतर आनी कार्यावळी करतना तुमी केन्नाच डेटा गमावचे नात वा परत बरयचे नात असो विस्वास अपरिवर्तनीयता दिता. तुमच्या गरजांचेर आदारून वेळाचे वेगवेगळे प्रतिनिधीत्व (Instant, PlainDateTime, ZonedDateTime), जंय Moment सदांच UTC वेळ मुद्रांक भोंवतणी एक रॅपर आसता. Temporal तारीख स्वरूपणाखातीर Intl API वापरता, म्हणल्यार तुमकां टोकन स्पश्टपणान निर्देशीत करचे पडनासतना लोकेल-जागृत स्वरूपण आसूं येता.
नोट्स ऑन द पॉलीफिल आदीं सांगिल्ले प्रमाणें, एक Temporal polyfill उपलब्ध आसा, जें @js-temporal/polyfill नांवाच्या npm पॅकेज म्हणून वितरीत केलां. तुमकां आयज Temporal वापरपाक जाय जाल्यार, तुमकां अजून API धाडूंक नाशिल्ल्या Safari सारकिल्या ब्राउझरांक आदार दिवपाक हें पॉलीफिल जाय पडटलें. हाचे वांगडा वायट खबर म्हळ्यार तुमच्या बंडलाच्या आकारांत ताका लागून वाड जातली. बरी खबर म्हळ्यार अजूनय तातूंत मोमेंट वा मोमेंट-टायमझोना परस लक्षणीय रितीन उणें जोडटा. हांगा Bundlephobia.com कडल्यान कळयल्ल्या प्रमाणें बंडल आकारांची तुळा केल्या, जी npm पॅकेज आकारां विशीं म्हायती सादर करता (Bundlephobia विश्लेशण पळोवपाक दर एका पॅकेजीच्या नांवाचेर क्लिक करात):
पॅकेज मिनिफायड केल्लें मिनिफायड & gzipped @js-टेम्पोरल/पॉलीफिल १५४.१ केबी इतलें आसता ४४.१ केबी इतलें आसता खीण २९४.४ केबी इतलें आसता ७५.४ केबी इतलें आसता खीण-काळक्षेत्र १ एमबी 114.2 केबी इतलें आसता
पॉलीफिलाक इतिहासीक रितीन मेमरी वापरा भोंवतणीय कांय कार्यक्षमताय प्रस्न आशिल्ले, आनी हें बरयतना, तें आल्फा स्थितींत आसा अशें मानतात. हाका लागून तो चड परिपक्व अवस्थेंत पावना मेरेन तुमकां ताचो उत्पादनांत वापर करपाची इत्सा नासूं येता. दुसरी बरी खबर म्हळ्यार आशेन पॉलीफिलाची चड काळ गरज पडची ना (जो मेरेन तुमकां पोरन्या ब्राउझरांक आदार दिवपाची गरज ना, अर्थांत). हें बरयतना, Temporal क्रोम, एज, आनी फायरफॉक्सांत शिप केला. सफारींत अजून तो पुरायपणान तयार ना, जरी तो नवीनतम तंत्रज्ञान पूर्वावलोकनाचेर रनटायम ध्वजा वांगडा उपलब्ध दिसता.