Ihe fọrọ nke nta ka ọ bụrụ ụdị ngwa ọ bụla edere na Javascript na-arụ ọrụ na oge ma ọ bụ ụbọchị n'ụdị ụfọdụ. Na mbido, nke a bụ naanị na ụbọchị API arụnyere n'ime ya. API a gụnyere ọrụ bụ isi, mana ọ nwere oke n'ihe ọ nwere ike ime. Ọbá akwụkwọ ndị ọzọ dị ka Moment.js, na emesịa arụnyere n'ime API dị ka Intl API na API Temporal ọhụrụ, na-agbakwụnye mgbanwe dị ukwuu na-arụ ọrụ na oge na ụbọchị. The Rise and Fall of moment.js Moment.js bụ ọbá akwụkwọ Javascript nwere akụrụngwa siri ike maka ịrụ ọrụ na oge na ụbọchị. Ọ gụnyere atụmatụ ndị na-efu efu site na isi ụbọchị API, dị ka nhazi mpaghara oge, ma na-eme ka ọtụtụ ọrụ a na-ahụkarị dị mfe. Oge gụnyekwara ọrụ maka ịhazi ụbọchị na oge. Ọ ghọrọ ọbá akwụkwọ a na-ejikarị eme ihe n'ọtụtụ ngwa dị iche iche. Agbanyeghị, Moment nwekwara oke nke okwu. Ọ bụ nnukwu ọba akwụkwọ, ma nwee ike ịgbakwunye nke ukwuu na nha ngwugwu ngwa. N'ihi na ọbá akwụkwọ anaghị akwado ịma jijiji osisi (njirimara nke ngwugwu ọgbara ọhụrụ nke nwere ike wepu akụkụ ọba akwụkwọ ejighi ya), a na-etinye ọbá akwụkwọ oge niile ọbụlagodi ma ọ bụrụ na ị na-eji naanị otu ma ọ bụ abụọ n'ime ọrụ ya. Ihe ọzọ dị na oge bụ eziokwu na ihe ndị ọ na-emepụta na-agbanwe agbanwe. Ịkpọ ụfọdụ ọrụ na ihe oge oge nwere mmetụta dị n'akụkụ ma gbanwee uru nke ihe ahụ. Nke a nwere ike ibute omume ma ọ bụ ahụhụ na-atụghị anya ya. N'afọ 2020, ndị na-elekọta oge kpebiri itinye ọbá akwụkwọ ahụ n'ọnọdụ mmezi. Ọ dịghị mmepe atụmatụ ọhụrụ a na-eme, ndị na-elekọta ya na-atụ aro ka ha ghara iji ya mee ihe ọhụrụ. Enwere ọba akwụkwọ ụbọchị Javascript ndị ọzọ, dị ka ụbọchị-fns, mana enwere onye ọkpụkpọ ọhụrụ n'ime obodo, API arụnyere ozugbo na Javascript: nwa oge. Ọ bụ ọkọlọtọ ọhụrụ na-ejupụta na oghere nke API ụbọchị mbụ yana dozie ụfọdụ oke achọpụtara na Oge na ọba akwụkwọ ndị ọzọ. Kedu ihe bụ nwa oge? Temporal bụ oge ọhụrụ na ụbọchị API agbakwunyere na ọkọlọtọ ECMAScript, nke na-akọwa Javascript ọgbara ọhụrụ. Dị ka nke March 20266, ọ ruru ọkwa 4 nke usoro TC39 (kọmitii na-ahụ maka atụmatụ na mgbakwunye na asụsụ Javascript), a ga-etinyekwa ya na nsụgharị ọzọ nke nkọwa ECMAScript. Emejuputala ya n'ọtụtụ ihe nchọgharị: Chrome 144+ na Firefox 139+, yana Safari na-atụ anya iso ya n'oge adịghị anya. A polyfill dịkwa maka ihe nchọgharị anaghị akwado yana Node.js. API Temporal na-emepụta ihe ndị, n'ozuzu, na-anọchi anya oge n'ime oge. Ndị a nwere ike ịbụ stampụ oge na ụbọchị na mpaghara oge enyere, ma ọ bụ ha nwere ike bụrụ ihe atụ nke oge "elekere mgbidi" na-enweghị mpaghara oge ma ọ bụ ozi ụbọchị. Ụfọdụ n'ime njirimara bụ isi nke Temporal gụnyere:

Oge nwere ma ọ bụ enweghị ụbọchị. Ihe nwa oge nwere ike ịnọchite anya otu oge n'otu ụbọchị, ma ọ bụ oge na-enweghị ozi ụbọchị ọ bụla. Otu ụbọchị, na-enweghị oge, nwekwara ike ịnọchite anya. Nkwado mpaghara oge. Ihe oge na-ama mpaghara oge zuru oke ma nwee ike ịtụgharị n'ofe oge dị iche iche. Oge na-akwado mpaghara oge, mana ọ na-achọ ka agbakwunyere ọbá akwụkwọ mpaghara oge. Adịghị agbanwe agbanwe. Ozugbo emepụtara ihe nwa oge, enweghị ike ịgbanwe ya. Ntugharị oge mgbakọ na mwepụ ma ọ bụ mpaghara oge anaghị agbanwe ihe dị n'okpuru. Kama, ha na-emepụta ihe ọhụrụ nwa oge. 1-dabere na indexing.A na-ahụkarị ebe ahụhụ na-eji ụbọchị API (yana oge) bụ na ọnwa efu-indexed. Nke a pụtara na Jenụwarị bụ ọnwa 0, karịa ọnwa 1 dịka anyị niile ghọtara na ndụ n'ezie. nwa oge na-edozi nke a site n'iji indexing dabere na 1 - Jenụwarị bụ ọnwa 1. Ewubere ya n'ime ihe nchọgharị. Ebe Temporal bụ API na ihe nchọgharị n'onwe ya, ọ naghị atụkwasị ihe ọ bụla na nha ngwa ngwa gị.

Ọ dịkwa mkpa iburu n'uche na API ụbọchị anaghị apụ. Ọ bụ ezie na Temporal nọchiri API a, anaghị ewepụ ya ma ọ bụ ewepụ ya. Ọtụtụ ngwa ga-agbaji ma ọ bụrụ na ihe nchọgharị wepụrụ API ụbọchị na mberede. Agbanyeghị, burukwa n'uche na a na-ahụta oge ugbu a dị ka ọrụ nketa na ọnọdụ mmezi. N'ime akụkọ ndị ọzọ, anyị ga-eleba anya na ụfọdụ "ntụziaka" maka ịkwaga koodu dabere na oge na API Temporal ọhụrụ. Ka anyị malite imegharị! Ịmepụta ihe ụbọchị na oge Tupu anyị enwee ike ịchịkwa ụbọchị na oge, anyị ga-emepụta ihe na-anọchi anya ha. Iji mepụta oge ihe na-anọchi anya ụbọchị na oge dị ugbu a, jiri ọrụ oge. const now = oge (); console.log (ugbu a); // Oge <2026-02-18T21:26:29-05:00>

Enwere ike ịhazi ihe a ugbu a ma ọ bụ megharịa ya ka ọ dị mkpa.

// tọghatara na UTC //ịdọ aka ná ntị: Nke a na-agbanwe ihe oge ma tinye ya na ọnọdụ UTC! console.log (now.utc()); // Oge <2026-02-19T02:26:29Z>

// bipụta eriri ahaziri - mara na ọ na-eji oge UTC ugbu a console.log (ugbu a. usoro ('MM/DD/YYYY hh:mm:ss a')); // 02/19/2026 02:27:07 nke ụtụtụ

Isi ihe ị ga-echeta gbasara Oge bụ na ihe oge na-agụnye ozi gbasara oge na ụbọchị. Ọ bụrụ naanị na ị ga-arụ ọrụ na ozi oge, nke a na-adịkarị mma, mana ọ nwere ike ịkpata omume a na-atụghị anya ya n'ọnọdụ dị ka oge nchekwa ụbọchị ma ọ bụ afọ ịwụ elu, ebe ụbọchị nwere ike inwe mmetụta na oge nhazi oge. Nwa oge na-agbanwe karịa. Ị nwere ike ịmepụta ihe na-anọchi anya ụbọchị na oge dị ugbu a site na ịmepụta ihe oge. Nke a na-anọchi anya otu isi oge akọwapụtara site na oge kemgbe “oge” (etiti abalị UTC na Jenụwarị 1, 1970). Oge nwa oge nwere ike ịkọwa ozugbo nke a n'oge na-eji nkenke ọkwa nanosecond. const now = Temporal.Now.intant();

// hụ raw nanoseconds kemgbe oge console.log (ugbu a.epochNanoseconds); // 1771466342612000000n

// usoro maka UTC console.log (ugbu a.toString()); // 2026-02-19T01:55:27.844Z

// usoro maka mpaghara oge ụfọdụ console.log (ugbu a.toString ({timeZone: 'America/New_York'})); // 2026-02-18T20:56:57.905-05:00

Temporal.Enwekwara ike ịmepụta ihe ozugbo maka oge na ụbọchị a kapịrị ọnụ site na iji usoro static.

const myInstant = Temporal.Instant.from ('2026-02-18T21:10:00-05:00');

// Hazie ozugbo na mpaghara oge mpaghara. Mara na nke a na-achịkwa naanị // nhazi - ọ naghị agbanwe ihe ahụ dịka moment.utc si eme. console.log(myInstant.toString({timeZone: 'America/New_York'})); // 2026-02-18T21:10:00-05:00

Ị nwekwara ike ịmepụta ụdị ihe ndị ọzọ nwa oge, gụnyere:

Temporal.PlainDate: Ụbọchị na-enweghị ozi oge. Temporal.PlainTime: Oge na-enweghị ozi ụbọchị. Temporal.ZonedDateTime: Ụbọchị na oge na mpaghara oge akọwapụtara.

Nke ọ bụla n'ime ndị a nwere usoro nke enwere ike ịkpọ ya na ihe na-akọwapụta ụbọchị na/ma ọ bụ oge, ma ọ bụ eriri ụbọchị iji tụgharịa. // Naanị ụbọchị const today = Temporal.PlainDate.from ({ afọ: 2026, ọnwa: 2, // mara na anyị na-eji 2 maka February ụbọchị: 18 } console.log (taa.toString()); // 2026-02-18

// Naanị otu oge const lunchTime = Temporal.PlainTime.from ({ awa: 12 } console.log (lunchTime.toString()); // 12:00:00

// Ụbọchị na oge na mpaghara oge ọwụwa anyanwụ US const dueAt = Temporal.ZonedDateTime.from ({ Mpaghara oge: 'America/New_York', afọ: 2026, onwa: 3, ụbọchị: 1, awa: 12, nkeji: 0, nke abụọ: 0 } console.log(dueAt.toString()); // 2026-03-01T12:00:00-05:00[America/New_York]

Ntụle Anyị ekpuchila ozi ụbọchị na oge mmemme mmemme. Ugbu a, ka anyị leba anya n'ịkọwapụta. Ntụle bụ otu mpaghara ebe oge na-agbanwe karịa API Temporal arụnyere n'ime ya. Ị nwere ike ịtụgharị eriri ụbọchị site na ịnyefe ya na ọrụ oge. Site na otu arụmụka, oge na-atụ anya eriri ụbọchị ISO, mana ị nwere ike iji usoro ọzọ ma ọ bụrụ na ị nye arụmụka nke abụọ na-akọwa usoro ụbọchị a na-eji.

const isoDate = oge ('2026-02-21T09:00:00'); const formattedDate = oge ('2/21/26 9:00:00', 'M/D/YY h:mm:ss');

console.log (isoDate); // Oge <2026-02-21T09:00:00-05:00>

console.log (Ụbọchị nhazi); // Oge <2026-02-21T09:00:00-05:00>

Na nsụgharị ochie, Oge ga-eme atụmatụ kacha mma iji tụgharịa eriri ụbọchị ọ bụla edobere akaghị aka. Nke a nwere ike ibute nsonaazụ enweghị atụ. Dịka ọmụmaatụ, ọ bụ 02-03-2026 Febụwarị 2 ma ọ bụ Machị 3? N'ihi nke a, ụdị ọhụrụ nke oge na-egosipụta ịdọ aka ná ntị nhụsianya a ma ama ma ọ bụrụ na a na-akpọ ya na-enweghị eriri ụbọchị nhazi ISO (ọ gwụla ma e nyere arụmụka nke abụọ na usoro achọrọ). Oge oge ga-atụgharị naanị eriri ụbọchị ahaziri ahazi. Eriri ahụ ga-adabarịrị na usoro ISO 8601 ma ọ bụ ndọtị ya, RFC 9557. Ọ bụrụ na agafere eriri ụbọchị na-akwadoghị na usoro, Temporal ga-atụfu RangeError.

// Iji eriri ụbọchị RFC 9557 const myDate = Temporal.Instant.from ('2026-02-21T09:00:00-05:00[America/New_York]'); console.log(myDate.toString({timeZone: 'America/New_York'})); // 2026-02-21T09:00:00-05:00

// Iji eriri ụbọchị amaghị const otherDate = Temporal.Instant.from ('2/21/26 9:00:00'); //RangeError: Njehie nwa oge: agwa ezighi ezi mgbe ị na-atụgharị uru afọ.

Ihe achọrọ nke eriri ụbọchị dabere na ụdị ihe nwa oge ị na-eke. N'ihe atụ dị n'elu, Temporal.Instant chọrọ ISO zuru ezu8601 ma ọ bụ RFC 9557 eriri ụbọchị na-akọwapụta ụbọchị na oge na mpaghara oge, mana ị nwekwara ike ịmepụta PlainDate ma ọ bụ PlainTime ihe site na iji naanị obere usoro nke usoro ụbọchị. const myDate = Temporal.PlainDate.from ('2026-02-21'); console.log (myDate.toString()); // 2026-02-21

const myTime = Temporal.PlainTime.from ('09:00:00'); console.log (myTime.toString()); // 09:00:00

Rịba ama na eriri ndị a ka ga-agbasorịrị usoro a na-atụ anya ya, ma ọ bụ na a ga-atụfu njehie.

// Iji eriri oge na-akwadoghị. Ihe ndị a niile ga-atụfu RangeError. Temporal.PlainTime.si na ('9:00'); Temporal.PlainTime.si na('9:00:00 AM');

Ndụmọdụ Pro: Ijikwa eriri ndị na-abụghị ISO N'ihi na nwa oge na-ebute ntụkwasị obi ụzọ, ọ gaghị anwa ịkọpụta usoro nke eriri dị ka 02-01-2026. Ọ bụrụ na isi iyi data gị na-eji eriri ndị dị otú ahụ, ị ​​ga-achọ ịmegharị ụfọdụ eriri iji megharịa ụkpụrụ n'ime eriri ISO dị ka 2026-02-01 tupu ị nwaa iji ya na Temporal.

Nhazi Ozugbo ị nwere ihe oge ma ọ bụ ihe nwa oge, ọ ga-abụ na ị ga-achọ ịgbanwe ya ka ọ bụrụ eriri edoziri n'oge ụfọdụ. Nke a bụ ọmụmaatụ ebe oge dị ntakịrị karịa. Ị na-akpọ usoro nhazi ihe ahụ nwere eriri akara na-akọwa usoro ụbọchị achọrọ. const ụbọchị = oge ();

console.log (ụkpụrụ ụbọchị ('MM/DD/YYYY')); // 02/22/2026

console.log(date.format('MMMM Mee YEYYY, h:mm:ss a')); // Febụwarị 22, 2026, 8:18:30 ehihie

N'aka nke ọzọ, Temporal chọrọ ka ị bụrụ ntakịrị okwu ọnụ. Ihe nwa oge, dị ka ngwa ngwa, nwere usoro toLocaleString na-anabata nhọrọ nhazi dị iche iche akọwapụtara dị ka njirimara nke ihe.

const date = Temporal.Now.intant();

// na-enweghị arụmụka, anyị ga-enweta usoro ndabara maka mpaghara dị ugbu a console.log (date.toLocaleString()); // 2/22/2026, 8:23:36 Pm (na-eche na mpaghara en-US)

// nyefee nhọrọ nhazi iji mepụta eriri usoro omenala console.log (date.toLocaleString('en-US', { onwa: 'ogologo', ụbọchị: 'nọmba', afọ: 'nọmba', elekere: '2-nọmba', nkeji: '2-nọmba' })); // Febụwarị 22, 2026, elekere 8:23 nke ehihie

// naanị gafere mpaghara ịchọrọ na eriri usoro console.log (date.toLocaleString('en-US', { onwa: 'obere', ụbọchị: 'nọmba' })); // Febụwarị 22

Nhazi ụbọchị nwa oge na-eji Intl.DateTimeFormat API (nke dị adịlarị na ihe nchọgharị ọgbara ọhụrụ) n'okpuru mkpuchi. Nke ahụ pụtara na ị nwere ike ịmepụta ihe DateTimeFormat nwere ike iji nhọrọ nhazi omenala gị, wee nyefee ihe nwa oge na usoro nhazi ya. N'ihi nke a, ọ naghị akwado usoro ụbọchị omenala dịka oge. Ọ bụrụ na ịchọrọ ihe dịka 'Q1 2026' ma ọ bụ nhazi ọpụrụiche ndị ọzọ, ị nwere ike ịchọ ụfọdụ koodu nhazi ụbọchị omenala ma ọ bụ ruo maka ọba akwụkwọ ndị ọzọ. const formatter = ọhụrụ Intl.DateTimeFormat('en-US', { onwa: '2-nọmba', ụbọchị: '2-nọmba', afọ: 'nọmba' }

const date = Temporal.Now.intant(); console.log (formatter.format (ụbọchị)); // 02/22/2026

Ihe nrịbama nhazi oge dị mfe ide, mana ha anaghị eme enyi na mpaghara. Ụdị eriri usoro "koodu siri ike" ihe dị ka usoro ọnwa / ụbọchị. Uru nke iji ihe nhazi, dị ka Temporal na-eme, bụ na ọ ga-emegharị ozugbo na mpaghara ọ bụla enyere ma jiri usoro ziri ezi. const date = Temporal.Now.intant();

const formatOptions = { onwa: 'onu ogugu', ụbọchị: 'nọmba', afọ: 'nọmba' };

console.log(date.toLocaleString('en-US', formatOptions)); // 2/22/2026

console.log(date.toLocaleString('en-GB', formatOptions)); // 22/02/2026

Ngụkọ ụbọchị N'ọtụtụ ngwa, ị ga-achọ ịkwụsị ime ụfọdụ mgbako na ụbọchị. Ị nwere ike ịchọrọ ịgbakwunye ma ọ bụ wepụ nkeji oge (ụbọchị, awa, sekọnd, wdg). Dịka ọmụmaatụ, ọ bụrụ na ị nwere ụbọchị dị ugbu a, ị nwere ike igosi onye ọrụ ụbọchị 1 izu site ugbu a. Ihe oge nwere ụzọ dị ka ịgbakwunye na wepụ ihe na-arụ ọrụ ndị a. Ọrụ ndị a na-ewere uru yana otu, dịka ọmụmaatụ: tinye(7, 'ụbọchị'). Otu ihe dị oke mkpa dị n'etiti Oge na Oge, Otú ọ dị, bụ na mgbe ị na-eme mgbakọ ụbọchị ndị a, a na-agbanwe ihe dị n'okpuru ebe a na-efunahụ uru mbụ ya. const now = oge ();

console.log (ugbu a); // Oge <2026-02-24T20:08:36-05:00>

const nextWeek = now.gbakwunye(7, 'ụbọchị'); console.log (izu na-abịa); // Oge <2026-03-03T20:08:36-05:00>

// Gotcha - ihe mbụ gbanwere console.log (ugbu a); // Oge <2026-03-03T20:08:36-05:00>

Iji zere ịlafu ụbọchị mbụ, ị nwere ike ịkpọ clone na ihe oge iji mepụta otu. const now= oge (); const nextWeek = now.clone () gbakwunye (7, 'ụbọchị');

console.log (ugbu a); // Oge <2026-02-24T20:12:55-05:00>

console.log (izu na-abịa); // Oge <2026-03-03T20:12:55-05:00>

N'aka nke ọzọ, ihe nwa oge anaghị agbanwe agbanwe. Ozugbo ị mepụtara ihe dị ka ngwa ngwa, PlainDate, na ihe ndị ọzọ, uru ihe ahụ agaghị agbanwe. Ihe nwa oge nwekwara ụzọ mgbakwunye na mwepu. Oge oge dị ntakịrị ihe gbasara nkeji oge enwere ike ịgbakwunye na ụdị ihe. Dịka ọmụmaatụ, ịnweghị ike itinye ụbọchị na ngwa ngwa:

const now = Temporal.Now.intant(); const nextWeek = now.gbakwunye ({ụbọchị: 7}); //RangeError: Njehie nwa oge: Nke kacha ibu enweghị ike ịbụ nkeji ụbọchị

Nke a bụ n'ihi na ihe ngwa ngwa na-anọchi anya otu oge na oge na UTC ma bụrụ kalenda-agnostic. N'ihi na ogologo nke otu ụbọchị nwere ike ịgbanwe dabere na iwu mpaghara oge dị ka oge ịchekwa ìhè ụbọchị, ngụkọ a adịghị na ngwa ngwa. Ị nwere ike, agbanyeghị, ịrụ ọrụ a n'ụdị ihe ndị ọzọ, dị ka PlainDateTime: const now = Temporal.Now.plainDateTimeISO(); console.log (ugbu a.toLocaleString()); // 2/24/2026, 8:23:59 ehihie

const nextWeek = now.gbakwunye ({ụbọchị: 7});

// Rịba ama na PlainDateTime mbụ agbanwebeghị console.log (ugbu a.toLocaleString()); // 2/24/2026, 8:23:59 ehihie

console.log(izu na-abịa.toLocaleString()); // 3/3/2026, 8:23:59 ehihie

Ị nwekwara ike gbakọọ oge ole dị n'etiti ihe abụọ Oge ma ọ bụ nwa oge. Site na ọrụ dị iche iche nke oge, ịkwesịrị ịnye otu maka granularity, ma ọ bụghị ya, ọ ga-eweghachi ihe dị iche na milliseconds. const date1 = oge ('2026-02-21T09:00:00'); const date2 = oge ('2026-02-22T10:30:00');

console.log (ụbọchị2.diff(ụbọchị1)); // 91800000

console.log (ụbọchị2.diff (ụbọchị1, 'ụbọchị')); // 1

Iji jiri ihe nwa oge mee nke a, ị nwere ike ibufe ihe nwa oge ọzọ na nke ya ruo mgbe ma ọ bụ kemgbe usoro. Nke a na-eweghachite ihe nwa oge. Ogologo ihe nwere ozi gbasara ọdịiche oge. Ihe Ogologo oge nwere akụrụngwa maka akụkụ ọ bụla nke ọdịiche ahụ, yana nwekwara ike iwepụta eriri ogologo oge ISO 8601 na-anọchite anya ọdịiche oge.

const date1 = Temporal.PlainDateTime.from ('2026-02-21T09:00:00'); const date2 = Temporal.PlainDateTime.from ('2026-02-22T10:30:00');

// mostUnit na-akọwapụta nkeji oge kachasị ukwuu iji nọchite anya // na ngụkọta oge const diff = date2.since (ụbọchị1, { mostUnit: 'day'});

console.log (diff.days); // 1

console.log (diff.hours); // 1

console.log (iche.nkeji); // 30

console.log(diff.toString()); // P1DT1H30M // (Eriri ogologo oge ISO 8601: 1 ụbọchị, elekere 1, nkeji 30)

Ntụnyere ụbọchị na oge Oge na nwa oge na-ahapụ gị ka ị tụle ụbọchị na oge iji chọpụta nke na-abịa n'ihu nke ọzọ, mana jiri API were ụzọ dị iche iche. Oge na-enye ụzọ dị ka isBefore, isAfter, and isSame iji tụnyere ihe oge abụọ. const date1 = oge ('2026-02-21T09:00:00'); const date2 = oge ('2026-02-22T10:30:00');

console.log (date1.isBefore (ụbọchị2)); // eziokwu

Temporal na-eji usoro ntụnyere static iji mee ntụnyere n'etiti ihe abụọ nwere otu ụdị. Ọ na-alaghachi -1 ma ọ bụrụ na ụbọchị mbụ abịa tupu nke abụọ, 0 ma ọ bụrụ na ha hà nhata, ma ọ bụ 1 ma ọ bụrụ na ụbọchị mbụ na-abịa mgbe nke abụọ gasịrị. Ihe atụ na-esonụ na-egosi otu esi atụnyere ihe abụọ PlainDate. Arụmụka abụọ a na Temporal.PlainDate.compare ga-abụrịrị ihe PlainDate.

const date1 = Temporal.PlainDate.from ({afọ: 2026, ọnwa: 2, ụbọchị: 24}); const date2 = Temporal.PlainDate.from ({afọ: 2026, ọnwa: 3, ụbọchị: 24});

// date1 na-abịa tupu date2, ya mere -1 console.log (Temporal.PlainDate.compare (ụbọchị1, ụbọchị2));

// Njehie ma ọ bụrụ na anyị na-agbalị iji tụnyere ihe abụọ nke ụdị dị iche iche console.log(Temporal.PlainDate.compare(ụbọchị1, Temporal.Now.intant())); // Ụdị mperi: Njehie nwa oge: Enyere ubi PlainDate na ezighi ezi.

Karịsịa, nke a na-eme ka ọ dị mfe ịhazi ọtụtụ ihe oge oge n'usoro oge. // Ọtụtụ ihe Temporal.PlainDate const ụbọchị = [...];

// jiri Temporal.PlainDate.compare dị ka ọrụ comparator dates.sort (Temporal.PlainDate.compare);

Ntụgharị Mpaghara Oge Ọbá akwụkwọ oge isi anaghị akwado mgbanwe mpaghara oge. Ọ bụrụ na ịchọrọ ọrụ a, ị ga-etinyekwa ngwungwu mpaghara oge. Ngwungwu a enweghị ike ịmegharị osisi, yabụ nwere ike ịgbakwunye nke ukwuu na nha ngwugwu gị. Ozugbo i tinyechara mpaghara oge, ị nwere ike iji usoro tz gbanwee ihe oge gaa na mpaghara oge dị iche iche. Dị ka ọ dị n'ọrụ oge ndị ọzọ, nke a na-agbanwe ihe dị n'okpuruihe. // Na-eche na US Eastern oge const now = oge (); console.log (ugbu a); // Oge <2026-02-28T20:08:20-05:00>

// Tụgharịa gaa na oge Pacific. // The mbụ Eastern oge efu. now.tz ('America/Los_Angeles'); console.log (ugbu a); // Oge <2026-02-28T17:08:20-08:00>

A na-arụ ọrụ mpaghara oge n'ime Temporal API mgbe ị na-eji ihe Temporal.ZonedDateTime. Ihe ndị a gụnyere usoro nwereTimeZone na-eweghachite ZonedDateTime ọhụrụ na-anọchi anya otu oge n'ime oge, mana na mpaghara oge akọwapụtara. // Ọzọ, na-ewere US Eastern oge const now = Temporal.Now.zonedDateTimeISO(); console.log (ugbu a.toLocaleString()); // 2/28/2026, 8:12:02 ehihie EST

// Tụgharịa gaa na oge Pacific const nowPacific = now.withTimeZone('America/Los_Angeles'); console.log (ugbu aPacific.toLocaleString()); // 2/28/2026, 5:12:02 PST

// Ihe izizi anaghị agbanwe agbanwe console.log (ugbu a.toLocaleString()); // 2/28/2026, 8:12:02 ehihie EST

Mara: Ụkpụrụ ahaziziri nke toLocaleString weghachiri, dị ka aha ahụ pụtara, dabere na mpaghara. Emepụtara koodu nlele ahụ na mpaghara en-US, yabụ usoro a dị ka nke a: 2/28/2026, 5:12:02 PST. Na mpaghara ọzọ, nke a nwere ike ịdị iche. Dịka ọmụmaatụ, na mpaghara en-GB, ị ga-enweta ihe dịka 28/2/2026, 17:12:02 GMT-8. Ntugharị n'ezie n'ụwa Ka e were ya na anyị na-ewu ngwa maka ịhazi mmemme n'ofe mpaghara oge. Akụkụ nke ngwa a bụ ọrụ, getEventTimes, nke na-ewe eriri ISO 8601 na-anọchi anya oge na ụbọchị ihe omume ahụ, mpaghara oge mpaghara na mpaghara oge ebumnuche. Ọrụ a na-emepụta oge a haziri na eriri ụbọchị maka mmemme na mpaghara oge abụọ ahụ. Ọ bụrụ na enyere ọrụ ahụ eriri ntinye na-abụghị eriri oge/ụbọchị, ọ ga-atụfu njehie. Nke a bụ mmejuputa iwu mbụ, na-eji Oge (na-achọkwa iji ngwugwu oge-oge).

mbubata oge site na 'oge-oge mpaghara';

ọrụ getEventTimes (ntinyeString, userTimeZone, targetTimeZone) { const timeFormat = 'MMM D, YYYY, h:mm:ss a z';

// 1. Mepụta oge mbụ na mpaghara oge onye ọrụ const eventTime = moment.tz( ntinye eriri, moment.ISO_8601, // na-atụ anya eriri ISO 8601 eziokwu, // Ntụle siri ike onye ọrụTimeZone );

// Tụfuo mperi ma ọ bụrụ na ntinyeString anọchighị anya ụbọchị ziri ezi ọ bụrụ (! EventTime.isValid()) { tufuo mperi ọhụrụ('ntinye ụbọchị/oge ezighi ezi'); }

// 2. Gbakọọ oge ebumnuche // OKWU: Anyị ga-emechi, ma ọ bụ 'eventTime' na-agbanwe ruo mgbe ebighị ebi! const targetTime = eventTime.clone () .tz(targetTimeZone);

laghachi { local: eventTime.format(timeFormat), target: targetTime.format(timeFormat), }; }

const oge = getEventTimes( '2026-03-05T15:00-05:00', 'America/New_York', 'Europe/London', );

console.log (nhazi.local); // Maachị 5, 2026, 3:00:00 ehihie EST

console.log (nhazi.target); // Maachị 5, 2026, 8:00:00 ehihie GMT

N'ihe atụ a, anyị na-eji usoro ụbọchị a na-atụ anya ISO 8601, nke ejiri aka rụọ n'ime oge. Anyị na-ejikwa ntule siri ike, nke pụtara na oge agaghị anwa ịkọ nkọ na eriri ụbọchị na-adabaghị na usoro ahụ. Ọ bụrụ na agafere eriri ụbọchị na-abụghị ISO, ọ ga-ebute ihe ụbọchị adịghị mma, anyị na-atụfu njehie. Mmejuputa nwa oge yiri otu, mana nwere isi isi ole na ole.

ọrụ getEventTimes (ntinyeString, userTimeZone, targetTimeZone) { // 1. Tụgharịa ndenye ozugbo n'ime ngwa ngwa, wee mepụta // a ZonedDateTime na mpaghara onye ọrụ. const ozugbo = Temporal.Instant.from(inputString); const eventTime = instant.toZonedDateTimeISO(onye ọrụTimeZone);

// 2. Tugharia na mpaghara ebumnuche // Nke a na-eweghachi ihe ọhụrụ na-akpaghị aka; 'EventTime' adịghị mma. const targetTime = eventTime.withTimeZone(targetTimeZone);

// 3. Hazie site na iji Intl (wuru na) nhọrọ const = { afọ: 'nọmba', onwa: 'obere', ụbọchị: 'nọmba', hour: 'nọmba', nkeji: '2-nọmba', nke abụọ: '2-nọmba', Oge MpagharaAha: 'mkpụmkpụ' };

laghachi { local: eventTime.toLocaleString(navigator.language, nhọrọ), target: targetTime.toLocaleString(navigator.language, nhọrọ) }; }

const oge = getEventTimes( '2026-03-05T15:00-05:00', 'America/New_York', 'Europe/London', );

console.log (nhazi.local); // Maachị 5, 2026, 3:00:00 ehihie EST

console.log (nhazi.target); // Maachị 5, 2026, 8:00:00 ehihie GMT

N'oge, anyị ga-akọwapụta nke ọma eriri usoro maka eriri ụbọchị ga-apụta. N'agbanyeghị ọnọdụ ma ọ bụ mpaghara onye ọrụ, a ga-ahazi oge mmemme ka ọ bụrụ Maachị 5, 2026, 3:00:00.pm EST. Ọzọkwa, anyị ekwesịghị ịtụfu ihe n'ụzọ doro anya. Ọ bụrụ na agafere eriri na-ezighi ezi na Temporal.Instant.from, Temporal ga-atụpụrụ anyị iche. Otu ihe ị ga-amata bụ na ọbụlagodi n'ịtụle ya nke ọma, ụdị oge a ka na-adị nwayọọ karị. Nwa oge na-achọ ka mweghachi mpaghara oge na njedebe nke eriri. I kwesịkwara ịma na ebe ọ bụ na anyị na-eji navigator.language, koodu a ga-agba ọsọ na gburugburu ihe nchọgharị, ebe ọ bụ na akọwapụtaghị ihe nchọgharị na mpaghara Node.js. Mmejuputa nwa oge na-eji mpaghara ihe nchọgharị dị ugbu a (navigator.language), yabụ onye ọrụ ga-enweta oge mmemme na-akpaghị aka n'ụdị oge mpaghara ha. Na mpaghara en-US, nke a bụ Machị 5, 2026, elekere 3:00:00 nke mgbede EST. Agbanyeghị, ọ bụrụ na onye ọrụ nọ na London, dịka ọmụmaatụ, a ga-ahazi oge mmemme ka 5 Maachị 2026, 15:00:00 GMT-5. Nchịkọta

Omume Oge.js Nwa oge Oge ugbu a oge () Temporal.Ugbu a.zonedDateTimeISO() Nyochaa ISO oge (str) Temporal.Ozugbo.site na (str) Tinye oge .gbakwunye (7, 'ụbọchị') (mutates) .gbakwunye ({ụbọchị: 7}) (ihe ọhụrụ) Ọdịiche .iche(ọzọ, 'awa') .si (ọzọ).awa Mpaghara oge .tz('Ebe/Aha') .naTimeZone('Ebe/Aha')

N'ileghachi anya na mbụ, ọdịiche ahụ nwere ike ịdịtụ iche (na n'ihe gbasara oge, mgbe ụfọdụ na-ekwu okwu na nke siri ike) syntax, mana enwere ọtụtụ uru dị mkpa maka iji Temporal over Moment.js:

Ịkọwapụta nke ọma pụtara obere ihe ịtụnanya na ahụhụ ndị a na-atụghị anya ya. Oge nwere ike iyi ka ọ na-adị nwayọọ karị, mana ọ gụnyere "ọrụ a na-eche," nke nwere ike ibute ụbọchị na-ezighi ezi mgbe ụfọdụ. Ọ bụrụ na ị nye Temporal ihe adịghị mma, ọ na-atụfu mperi. Ọ bụrụ na koodu ahụ na-agba ọsọ, ị maara na ị nwere ụbọchị bara uru. Oge nwere ike ịgbakwunye nha dị ukwuu na ngwugwu ngwa ahụ, ọkachasị ma ọ bụrụ na ị na-eji ngwungwu mpaghara oge. Temporal anaghị agbakwunye ihe ọ bụla (ozugbo ebufere ya na ihe nchọgharị gị lekwasịrị anya). Enweghị mgbanwe na-enye gị obi ike na ị gaghị atụfu ma ọ bụ degharịa data mgbe ị na-eme mgbanwe ụbọchị na arụmọrụ. Nnọchiteanya dị iche iche nke oge (Ozugbo, PlainDateTime, ZonedDateTime) dabere na ihe ị chọrọ, ebe oge bụ ihe mkpuchi mgbe niile na akara ngosi UTC. Temporal na-eji Intl API maka nhazi ụbọchị, nke pụtara na ị nwere ike ịnwe nhazi mpaghara na-amata na-enweghị ezipụta akara n'ụzọ doro anya.

Ihe edeturu na Polyfill Dịka ekwuru na mbụ, enwere polyfill nwa oge dị, ekesara dị ka ngwugwu npm aha ya bụ @js-temporal/polyfill. Ọ bụrụ na ịchọrọ iji Temporal taa, ị ga-achọ polyfill a iji kwado ihe nchọgharị dị ka Safari nke na-ebubatabeghị API. Akụkọ ọjọọ dị na nke a bụ na ọ ga-agbakwunye na nha ngwugwu gị. Ozi ọma ahụ bụ na ọ ka na-agbakwunye obere oge ma ọ bụ mpaghara oge. Nke a bụ ntụnyere nha nha dịka Bundlephobia.com si kọọ, webụsaịtị na-enye ozi na nha ngwugwu npm (pịa aha ngwugwu ọ bụla iji hụ nyocha Bundlephobia):

ngwugwu Obere Obere & gzipped @js-oge/polyfill 154.1kB 44.1kB oge 294,4 kB 75.4kB mpaghara oge 1 MB 114.2 kB

Polyfill nwekwara akụkọ ihe mere eme nwere ụfọdụ okwu arụmọrụ gburugburu iji ebe nchekwa, na n'oge edere, a na-ewere ya na ọ dị na steeti alfa. N'ihi nke a, ị nwere ike ọ gaghị achọ iji ya na mmepụta ruo mgbe ọ ruru ọnọdụ tozuru okè. Ozi ọma ọzọ bụ na olile anya na polyfill agaghị adị mkpa ogologo oge (ọ gwụla ma ịchọrọ ịkwado ihe nchọgharị ochie, n'ezie). N'oge ederede, Temporal ebubatala na Chrome, Edge, na Firefox. Ọ dịbeghị njikere na Safari, n'agbanyeghị na ọ dị ka ọ dị na ọkọlọtọ oge na-agba ọsọ na nlele teknụzụ kachasị ọhụrụ.

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