Ɛkame ayɛ sɛ application biara a wɔakyerɛw wɔ JavaScript mu no de mmere anaa nna yɛ adwuma wɔ ɔkwan bi so. Mfiase no, na eyi yɛ Date API a wɔde ahyɛ mu no nkutoo. Saa API yi de mfitiaseɛ dwumadie ka ho, nanso ɛwɔ anohyetoɔ koraa wɔ deɛ ɛtumi yɛ mu. Nhomakorabea ahorow a ɛto so abiɛsa te sɛ Moment.js, ne akyiri yi API ahorow a wɔasisi te sɛ Intl APIs ne Temporal API foforo no, de nsakrae kɛse ka ho wɔ bere ne nna a wɔde yɛ adwuma no mu. Moment no Sɔre Ne Ahwease.js Moment.js yɛ JavaScript nwomakorabea a ɛwɔ mfasoɔ a tumi wom a wɔde yɛ adwuma wɔ mmerɛ ne nna ho. Ɛka nneɛma a ɛyera fi Date API titiriw no mu, te sɛ bere fã a wɔde di dwuma ho, na ɛma adwumayɛ pii a wɔtaa yɛ no yɛ mmerɛw. Moment nso ka dwumadi ahorow a wɔde hyehyɛ nna ne mmere. Ɛbɛyɛɛ nhomakorabea a wɔde di dwuma kɛse wɔ nneɛma ahorow pii mu. Nanso, na Moment nso wɔ ne kyɛfa wɔ nsɛmpɔw ahorow mu. Ɛyɛ nhomakorabea kɛse, na ebetumi de bi aka application bi bundle kɛse ho kɛse. Esiane sɛ nhomakorabea no ntumi mmoa nnua wosow (nnɛyi bundlers afã bi a ebetumi ayi nhomakorabea afã horow a wɔmfa nni dwuma) nti, sɛ wode ne dwumadi biako anaa abien pɛ di dwuma mpo a, wɔde Moment nhomakorabea no nyinaa ka ho. Asɛm foforo a ɛfa Moment ho ne nokwasɛm a ɛyɛ sɛ nneɛma a ɛbɔ no yɛ nea ɛsakra. Sɛ wofrɛ dwumadi ahorow bi wɔ Moment ade bi so a, ɛwɔ nsunsuanso bɔne na ɛsakra saa ade no bo. Eyi betumi ama wɔayɛ nneyɛe a wɔnhwɛ kwan anaasɛ mfomso ahorow aba. Wɔ afe 2020 mu no, wɔn a wɔhwɛ Moment so no sii gyinae sɛ wɔde nhomakorabea no bɛhyɛ nsiesie tebea mu. Wɔnnyɛ feature foforo biara, na wɔn a wɔhwɛ so no kamfo kyerɛ sɛ ɛnsɛ sɛ wɔde di dwuma mma nnwuma foforo. JavaScript date nhomakorabea afoforo wɔ hɔ, te sɛ date-fns, nanso player foforo bi wɔ kurow no mu, API a wɔasisi no tẽẽ wɔ JavaScript: Temporal mu. Ɛyɛ gyinapɛn foforo a ɛhyɛ mfitiase Date API no ntokuru mu ma na ɛsan nso di anohyeto ahorow bi a wohu wɔ Moment ne nhomakorabea afoforo mu no ho dwuma. Dɛn Ne Bere mu Nneɛma? Temporal yɛ bere ne date API foforo a wɔde rebɛka ECMAScript gyinapɛn no ho, a ɛkyerɛkyerɛ nnɛyi JavaScript mu. Ɛde besi March 20266 no, adu TC39 nhyehyɛe no fã 4 (boayikuw a ɛhwɛ nsusuwii ne nea wɔde aka JavaScript kasa ho), na wɔde bɛka ECMAScript nkyerɛkyerɛmu no fã a edi hɔ no ho. Wɔde adi dwuma dedaw wɔ browser ahorow pii mu: Chrome 144+ ne Firefox 139+, a wɔhwɛ kwan sɛ Safari bedi akyi nnansa yi ara. Polyfill nso wɔ hɔ ma brawsa a wɔmmoa ne Node.js. Temporal API no bɔ nneɛma a, mpɛn pii no, egyina hɔ ma bere bi wɔ bere mu. Eyinom betumi ayɛ bere nyinaa ne date stamp ahorow wɔ bere fã bi mu, anaasɛ ebetumi ayɛ “ɔfasu dɔn” bere ho nhwɛso a ɛyɛ ne nyinaa a bere fã anaa date ho nsɛm biara nni mu. Temporal no mu nneɛma atitiriw bi ne:

Mmere a date ka ho anaa enni mu.Temporal ade betumi agyina h ma bere pɔtee bi wɔ da pɔtee bi so, anaa bere a enni date ho nsɛm biara. Wobetumi nso agyina hɔ ama da pɔtee bi, a bere biara nni mu. Bere fã mmoa.Bere mu nneɛma yɛ bere fã nim koraa na wobetumi adan no wɔ bere nhyehyɛe ahorow mu. Moment boa bere nhyehyɛe nso, nanso ɛhwehwɛ sɛ wɔde moment-time zone nhomakorabea foforo no di dwuma. Immutability.Sɛ wɔbɔ Temporal adeɛ bi pɛ a, wɔrentumi nsakra. Bere akontaabu anaa bere fã nsakrae nsakra ade a ɛhyɛ ase no. Mmom no, wɔma Temporal ade foforo ba. 1-based indexing.Adeɛ a ɛtaa de mfomsoɔ ba wɔ Date API (ne Moment nso) ne sɛ asram yɛ zero-indexed. Eyi kyerɛ sɛ January yɛ ɔsram 0, sen sɛ ɛbɛyɛ ɔsram 1 sɛnea yɛn nyinaa te ase wɔ asetra ankasa mu no. Temporal siesie eyi denam 1-based indexing a wɔde di dwuma so — January yɛ ɔsram 1. Wɔasisi no wɔ browser no mu.Esiane sɛ Temporal yɛ API wɔ browser no ankasa mu nti, ɛmfa hwee nka wo application no bundle size ho.

Ɛho hia nso sɛ yɛhyɛ no nsow sɛ Date API no nkɔ. Bere a Temporal si API yi ananmu no, wɔrenyi mfi hɔ anaasɛ wɔregyae. Sɛ browser ahorow yi Date API no mpofirim a, application pii bɛbubu. Nanso, ma ɛntra w’adwenem nso sɛ mprempren wobu Moment sɛ agyapade adwuma wɔ nsiesie mode mu. Wɔ asɛm no nkaeɛ mu no, yɛbɛhwɛ “nuayɛ” bi a yɛde bɛtu Moment-based code akɔ Temporal API foforɔ no so. Momma yenfi ase nyɛ refactoring! Date Ne Bere Nneɛma a Wɔbɔ Ansa na yebetumi ayɛ nsakrae wɔ nna ne mmere mu no, ɛsɛ sɛ yɛbɔ nneɛma a egyina hɔ ma. Sɛ wopɛ sɛ wobɔ Moment adeɛ a egyina hɔ ma da ne berɛ a ɛwɔ hɔ seesei a, fa moment dwumadie no di dwuma. const mprempren = bere (); console.log (mprempren); // Bere <2026-02-18T21:26:29-05:00>

Seesei wobetumi ayɛ saa ade yi nhyehyɛe anaa wɔayɛ no sɛnea ɛho hia.

// dane kɔ UTC so //kɔkɔbɔ: Eyi sesa Moment ade no na ɛde to UTC mode mu! console.log (seesei.utc ()); // Bere <2026-02-19T02:26:29Z>

// print string a wɔahyehyɛ - hyɛ no nsow sɛ ɛde UTC bere no redi dwuma mprempren console.log (seesei.format ('MM / DD / YYYY hh: mm: ss a')); // 02/19/2026 02:27:07 anɔpa

Adeɛ titire a ɛsɛ sɛ yɛkae wɔ Moment ho ne sɛ Moment adeɛ bi de nsɛm a ɛfa bere ne da no ho ka ho bere nyinaa. Sɛ ɛho hia sɛ wode bere ho nsɛm nkutoo yɛ adwuma a, eyi taa yɛ papa, nanso ebetumi de nneyɛe a wɔnhwɛ kwan aba wɔ tebea horow te sɛ Awia Bere anaa mfe a ɛboro so mu, baabi a da no betumi anya bere ho akontaabu so nkɛntɛnso. Bere mu de yɛ nea ɛyɛ mmerɛw kɛse. Wubetumi ayɛ ade a egyina hɔ ma da ne bere a ɛwɔ hɔ mprempren denam Temporal.Instant ade a wobɛbɔ so. Eyi gyina hɔ ma bere bi a wɔde bere a efi “bere” (anadwo fã UTC wɔ January 1, 1970) kyerɛkyerɛɛ mu. Temporal betumi atwe adwene asi saa instant yi so wɔ bere mu de nanosecond-level pɛpɛɛpɛ. const seesei = Bere.Seesei.instant ();

// hwɛ raw nanoseconds fi bere no console.log (seesei.epochNanosekɔn); // 1771466342612000000n

// format ma UTC console.log (seesei.kɔString ()); // 2026-02-19T01:55:27.844Z. Ɔde ne nsa kyerɛɛ ne so

// format ma bere pɔtee bi console.log (seesei.kɔString ({ bereBeae: 'Amerika / New_York' })); // 2026-02-18T20:56:57.905-05:00

Temporal.Instant nneɛma nso wobetumi ayɛ ama bere ne da pɔtee bi denam from static kwan a wɔde bedi dwuma no so.

const meInstant = Bere.Ntɛm ara.fi ('2026-02-18T21:10:00-05:00');

// Format instant no wɔ mpɔtam hɔ bere fã no mu. Hyɛ no nsow sɛ eyi na ɛhyɛ so nkutoo // formatting no - ɛnsakra adeɛ no sɛdeɛ moment.utc yɛ no. console.log (myInstant.toString ({ bereBeae: 'Amerika / New_York' })); // 2026-02-18T21:10:00-05:00

Wubetumi nso ayɛ Temporal nneɛma ahorow afoforo, a nea ɛka ho ne:

Temporal.PlainDate: Date a bere ho nsɛm biara nni mu. Temporal.PlainTime: Bere a enni date ho nsɛm biara. Temporal.ZonedDateTime: Da ne bere a ɛwɔ bere pɔtee bi mu.

Eyinom mu biara wɔ from kwan a wobetumi de ade bi a ɛkyerɛ date ne/anaasɛ bere, anaa date string a wɔbɛhwehwɛ mu afrɛ. // Date bi kɛkɛ const nnɛ = Bere.PlainDate.fi ({ afe: 2026, 1999 mu. bosome: 2, // hyɛ no nsow sɛ yɛde 2 redi dwuma ama February da: 18 }); console.log (ɛnnɛ.kɔString ()); // 2026-02-18 na ɔkyerɛwee

// Bere bi kɛkɛ const awiabereBere = Bere.Bere a Ɛnyɛ Den.fi ({ dɔnhwerew: 12 }); console.log (awia aduan bere.kɔString ()); // 12:00:00 na ɛwɔ hɔ

// Da ne bere a ɛwɔ U.S. Apuei fam bere nhyehyɛe mu const dueAt = Bere.ZonedDateBere.fi ({ bereBeae: 'Amerika/New_York', . afe: 2026, 1999 mu. ɔsram: 3, 2019. da: 1, 2019. dɔnhwerew: 12, 13. simma: 0, 10. nea ɛto so abien: 0 }); console.log (dueAt.kɔString ()); // 2026-03-01T12:00:00-05:00[Amerika/New_York].

Parsing a wɔde kyerɛkyerɛ mu Yɛaka nhyehyɛe mu adebɔ a ɛfa da ne bere ho nsɛm ho. Afei ma yɛnhwɛ parsing. Parsing yɛ beaeɛ baako a Moment yɛ mmerɛw sen Temporal API a wɔde ahyɛ mu no. Wubetumi akyekyɛ date string bi mu denam nea wode bɛkɔ moment function no so. Sɛ wode akasakasa baako na ɛyɛ a, Moment hwɛ kwan sɛ wobɛnya ISO date ahama, nanso wobɛtumi de nkyerɛwdeɛ foforɔ adi dwuma sɛ wode akasakasa a ɛtɔ so mmienu a ɛkyerɛ date nhyehyɛɛ a wɔde redi dwuma no ma a.

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

console.log (isoDate) a wɔde di dwuma; // Bere <2026-02-21T09:00:00-05:00>

console.log (Da a wɔahyehyɛ); // Bere <2026-02-21T09:00:00-05:00>

Wɔ nkyerɛase dedaw mu no, Moment bɛyɛ nsusuwii a eye sen biara sɛ wɔbɛkyekyɛ date ahama biara a wɔahyɛ da ayɛ no mu. Eyi betumi ama nea ebefi mu aba a wontumi nhu. Sɛ nhwɛso no, so 02-03-2026 yɛ February 2 anaa March 3? Esiane eyi nti, Moment foforo no da kɔkɔbɔ a ɛda nsow a ɛkyerɛ sɛ wɔmpɛ sɛ wɔfrɛ no a ISO formatted date string nni mu (gye sɛ wɔde akasakasa a ɛto so abien a ɛne format a wɔpɛ no nso ama). Temporal bɛ parse date string a wɔahyehyɛ no pɔtee nkutoo. Ɛsɛ sɛ ahama no ne ISO 8601 format anaa ne ntrɛwmu, RFC 9557. Sɛ wɔde date ahama a ɛnhyia kɔ from kwan so a, Temporal bɛtow RangeError.

// RFC 9557 date ahama a wode redi dwuma const meDate = Bere.Ntɛm ara.fi ('2026-02-21T09:00:00-05:00 [Amerika / New_York]'); console.log (meDate.toString ({ bereBeae: 'Amerika / New_York' })); // 2026-02-21T09:00:00-05:00

// Wɔde date string a wonnim di dwuma const Date foforo = Bere.Ntɛm ara.fi ('2/21/26 9:00:00'); // RangeError: Bere mu mfomso: Nkyerɛwde a ɛnteɛ bere a woreyɛ afe bo no mu nhwehwɛmu.

Date string no ahwehwɛdeɛ pɔtee gyina Temporal adeɛ ko a worebɔ so. Wɔ atifi hɔ nhwɛsoɔ no mu no, Temporal.Instant hwehwɛ sɛ wonya ISO a edi mũ8601 anaa RFC 9557 date ahama a ɛkyerɛ da ne bere a ɛwɔ bere fã offset, nanso wobɛtumi nso ayɛ PlainDate anaa PlainTime nneɛma denam date format no mu akuo ketewa bi pɛ so. const meDate = Bere mu.PlainDate.fi ('2026-02-21'); console.log (meDate.kɔString ()); // 2026-02-21 na ɔkyerɛwee

const meBere = Bere.Bere a Ɛnyɛ Den.fi ('09:00:00'); console.log (meBere.kɔString ()); // 09:00:00 na ɛwɔ hɔ

Hyɛ no nsow sɛ ɛsɛ sɛ saa nhama yi da so ara di ɔkwan a wɔhwɛ kwan no so, anyɛ saa a wɔbɛtow mfomso bi.

// Bere nhama a enni mmara so a wode bedi dwuma. Eyinom nyinaa bɛtow RangeError. Bere.Bere a Ɛnyɛ Den.fi ('9:00'); Bere.Bere a Ɛnyɛ Den.fi ('9:00:00 AM');

Pro tip: Handling non-ISO stringsEsiane sɛ Temporal de ahotoso di kan nti, ɛremmɔ mmɔden sɛ ɛbɛsusuw sɛnea string bi te sɛ 02-01-2026 no te. Sɛ wo data fibea no de nhama a ɛte saa di dwuma a, ɛho behia sɛ woyɛ ahama mu nsakrae bi de san hyehyɛ botae ahorow no kɔ ISO ahama te sɛ 2026-02-01 ansa na woabɔ mmɔden sɛ wode Temporal bedi dwuma.

Format a wɔde hyɛ mu Sɛ wonya Moment anaa Temporal adeɛ bi wie a, ebia wobɛpɛ sɛ wodane no kɔ formatted string mu wɔ berɛ bi mu. Eyi yɛ nhwɛso a Moment yɛ tiawa kakra. Wode token ahorow a ɛkyerɛkyerɛ date format a wopɛ no frɛ object’s format kwan no. const date = bere ();

console.log (date.format ('MM / DD / YYYY')); // 02/22/2026 na ɔkyerɛwee

console.log (date.format ('MMMM Yɛ YYYY, h: mm: ss a')); // Ɔpɛpɔn 22nd 2026, 8:18:30 anadwo

Ɔkwan foforo so no, Temporal hwehwɛ sɛ woka nsɛm kakra. Bere mu nneɛma, te sɛ Instant, wɔ toLocaleString kwan a ɛgye formatting options ahorow a wɔakyerɛ sɛ ade bi su.

const date = Bere.Seesei.instant ();

// a arguments biara nni mu no, yɛbɛnya default format ama mprempren locale no console.log (date.kɔBeaeString ()); // 2/22/2026, 8:23:36 PM (yɛfa no sɛ locale bi yɛ en-US)

// pass formatting options na woayɛ custom format string console.log (date.kɔBeaeString ('en-US', { bosome: 'tenten', . da: 'akontaabu', . afe: 'akontaabu', . dɔnhwerew: '2-digit', . simma: '2-digit'. })); // Ɔpɛpɔn 22, 2026 wɔ 8:23 PM

// fa afuo a wopɛ wɔ format string no mu nko ara console.log (date.kɔBeaeString ('en-US', { bosome: 'tiatiaa', . da: 'akontaabu'. })); // Ɔpɛpɔn 22

Bere mu date formatting de Intl.DateTimeFormat API (a ɛwɔ hɔ ntɛm dedaw wɔ nnɛyi browser ahorow mu) di dwuma ankasa wɔ hood no ase. Ɛno kyerɛ sɛ wobɛtumi de wo custom formatting options ayɛ DateTimeFormat adeɛ a wobɛtumi de adi dwuma bio, afei wode Temporal nneɛma akɔ ne format kwan no so. Esiane eyi nti, ɛnboa custom date formats te sɛ nea Moment yɛ no. Sɛ wo hia biribi te sɛ 'Q1 2026' anaasɛ formatting soronko foforo a, ebia wubehia custom date formatting code bi anaasɛ wobɛkɔ nhomakorabea a ɛto so abiɛsa. const formatter = foforo Intl.DateBereFormat ('en-US', { ɔsram: '2-digit', . da: '2-digit', . afe: 'akontaabu'. });

const date = Bere.Seesei.instant (); console.log (formatter.format (da)); // 02/22/2026 na ɔkyerɛwee

Moment’s formatting tokens no yɛ mmerɛw sɛ wobɛkyerɛw, nanso ɛnyɛ locale-friendly. Format no strings “hard code” nneɛma te sɛ ɔsram/da nhyehyɛe. Mfaso a ɛwɔ nhyehyeɛ adeɛ a wode bedi dwuma so, sɛdeɛ Temporal yɛ no, ne sɛ ɛbɛdane ne ho akɔ locale biara a wɔde ama no so na ɛde format a ɛfata adi dwuma. const date = Bere.Seesei.instant ();

const formatNneɛma a Wɔpaw = { . bosome: 'akontaabu', . da: 'akontaabu', . afe: 'akontaabu'. };

console.log (date.toLocaleString ('en-US', formatOptions)); // 2/22/2026 na ɔkyerɛwee

console.log (date.toLocaleString ('en-GB', formatOptions)); // 22/02/2026 na ɔkyerɛwee

Date akontaabu Wɔ application pii mu no, ɛho behia sɛ wuwie a wobɛyɛ akontaabu ahorow bi wɔ date bi so. Ebia wobɛpɛ sɛ wode bere a wɔde yɛ adwuma (nna, nnɔnhwerew, sikani, ne nea ɛkeka ho) ka ho anaasɛ woyi fi mu. Sɛ nhwɛso no, sɛ wowɔ da a ɛwɔ hɔ mprempren no a, ebia wobɛpɛ sɛ wokyerɛ da a ɔde di dwuma no dapɛn 1 fi seesei. Moment nneɛma wɔ akwan te sɛ add ne subtract a ɛyɛ saa dwumadie yi. Saa dwumadie yi fa botaeɛ ne unit, sɛ nhwɛsoɔ: add(7, 'nna'). Nanso, nsonsonoeɛ baako a ɛho hia paa wɔ Moment ne Temporal ntam ne sɛ, sɛ wɔreyɛ saa date akontabuo yi a, wɔsesa adeɛ a ɛhyɛ aseɛ no na ne mfitiaseɛ boɔ no yera. const mprempren = bere ();

console.log (mprempren); // Bere <2026-02-24T20:08:36-05:00>

const nextWeek = seesei.fa ka ho (7, 'nna'); console.log (Nnawɔtwe a edi hɔ); // Bere <2026-03-03T20:08:36-05:00>

// Gotcha - na woasesa mfitiase ade no console.log (mprempren); // Bere <2026-03-03T20:08:36-05:00>

Sɛnea ɛbɛyɛ a worenhwere date a edi kan no, wubetumi afrɛ clone wɔ Moment ade no so de ayɛ kɔpi. const mprempren= bere tiaa bi (); const nextWeek = seesei.clone ().fa ka ho (7, 'nna');

console.log (mprempren); // Bere <2026-02-24T20:12:55-05:00>

console.log (Nnawɔtwe a edi hɔ); // Bere <2026-03-03T20:12:55-05:00>

Ɔkwan foforo so no, Temporal nneɛma no ntumi nsakra. Sɛ wobɔ adeɛ bi te sɛ Instant, PlainDate, ne nea ɛkeka ho wie a, saa adeɛ no boɔ rensesa da. Bere mu nneɛma nso wɔ akwan a wɔfa so de ka ho ne nea wɔtwe fi mu. Temporal yɛ picky kakra wɔ bere units a wobetumi de aka nneɛma ahorow bɛn ho. Sɛ nhwɛso no, wuntumi mfa nna nka Instant bi ho:

const seesei = Bere.Seesei.instant (); const nextWeek = seesei.fa ka ho ({ nna: 7 }); // RangeError: Bere mu mfomso: Unit kɛse ntumi nyɛ date unit

Eyi te saa efisɛ Instant nneɛma gyina hɔ ma bere pɔtee bi wɔ UTC mu na ɛyɛ kalenda-agnostic. Esiane sɛ da bi tenten betumi asesa a egyina bere nhyehyɛe ho mmara te sɛ Daylight Saving Time so nti, saa akontaabu yi nni Instant so. Nanso, wobɛtumi ayɛ saa dwumadie yi wɔ nneɛma ahodoɔ foforɔ so, te sɛ PlainDateTime: const mprempren = Bere.Seesei.plainDateTimeISO (); console.log (seesei.kɔBeaeString ()); // 2/24/2026, 8:23:59 anadwo

const nextWeek = seesei.fa ka ho ({ nna: 7 });

// Hyɛ no nsow sɛ mfitiase PlainDateTime no da so ara yɛ nea ɛnsakra console.log (seesei.kɔBeaeString ()); // 2/24/2026, 8:23:59 anadwo

console.log (Nnawɔtwe a edi hɔ.toLocaleString ()); // 3/3/2026, 8:23:59 anadwo

Wubetumi nso abu bere dodow a ɛda Moment anaa Temporal nneɛma abien ntam. Moment’s diff function no, ɛsɛ sɛ wode unit bi ma ma granularity, anyɛ saa a ɛbɛsan de nsonsonoeɛ no aba wɔ milliseconds mu. const date1 = bere ('2026-02-21T09:00:00'); const date2 = bere ('2026-02-22T10: 30:00');

console.log (date2.diff (date1)); // 91800000 na ɛwɔ hɔ

console.log (date2.diff (date1, 'nna')); // 1. Ɔde ne nsa kyerɛɛ ne so

Sɛ wode Temporal adeɛ bi bɛyɛ yei a, wobɛtumi de Temporal adeɛ foforɔ akɔ ne until anaa since akwan no so. Wei san de Temporal.Duration adeɛ a ɛwɔ nsɛm a ɛfa berɛ nsonsonoeɛ ho ba. Duration adeɛ no wɔ properties ma nsonsonoeɛ no fã biara, na ɛsan nso tumi yɛ ISO 8601 duration string a egyina hɔ ma bere nsonsonoeɛ no.

const date1 = Bere.PlainDateBere.fi ('2026-02-21T09:00:00'); const date2 = Bere.PlainDateBere.fi ('2026-02-22T10:30:00');

// largestUnit kyerɛ bere a ɛso sen biara a wɔde gyina hɔ ma // wɔ bere tenten akontaabu mu const diff = date2.since (date1, { kɛseUnit: 'da' });

console.log (nsonsonoe.nna); // 1. Ɔde ne nsa kyerɛɛ ne so

console.log (nsonsonoe. nnɔnhwerew); // 1. Ɔde ne nsa kyerɛɛ ne so

console.log (nsonsonoe.simma); // 30. Ɔde ne nsa kyerɛɛ ne so

console.log (nsonsonoe.kɔString ()); // P1DT1H30M na ɛwɔ hɔ // (ISO 8601 bere tenten ahama: da 1, dɔnhwerew 1, simma 30)

Date Ne Mmere a Wɔde Toto Ho Moment ne Temporal nyinaa ma wotumi de nna ne mmere toto ho de kyerɛ nea edi ɔfoforo no anim, nanso fa akwan horow so fa API no so. Moment de akwan te sɛ isBefore, isAfter, ne isSame ma de toto Moment nneɛma abien ho. const date1 = bere ('2026-02-21T09:00:00'); const date2 = bere ('2026-02-22T10: 30:00');

console.log (date1.yɛAnsa (date2)); // nokware

Temporal de static compare kwan di dwuma de yɛ ntotoho a ɛda nneɛma abien a ɛyɛ pɛ ntam. Ɛsan de -1 san ba sɛ da a edi kan no di nea ɛto so abien no anim a, 0 sɛ wɔyɛ pɛ a, anaa 1 sɛ da a edi kan no ba nea ɛto so abien no akyi a. Nhwɛsoɔ a ɛdidi soɔ yi kyerɛ sɛdeɛ wɔde PlainDate nneɛma mmienu bɛtoto ho. Ɛsɛ sɛ nsɛm abien no nyinaa a ɛkɔ Temporal.PlainDate.compare no yɛ PlainDate nneɛma.

const date1 = Temporal.PlainDate.from ({ afe: 2026, ɔsram: 2, da: 24 }); const date2 = Temporal.PlainDate.from ({ afe: 2026, ɔsram: 3, da: 24 });

// date1 di date2 anim, enti -1 console.log (Temporal.PlainDate.fa toto ho (date1, date2));

// Mfomso sɛ yɛbɔ mmɔden sɛ yɛde nneɛma abien a ɛsono ne su bɛtoto ho a console.log (Bere mu.PlainDate.compare (date1, Bere.Seesei.instant ())); // TypeError: Bere mu mfomso: Wɔde PlainDate mfuw a ɛnteɛ ama.

Titiriw no, eyi ma ɛyɛ mmerɛw sɛ wobɛhyehyɛ Temporal nneɛma ahorow a wɔahyehyɛ no nnidiso nnidiso. // Temporal.PlainDate nneɛma a wɔahyehyɛ const nna = [ ... ];

// fa Temporal.PlainDate.compare di dwuma sɛ ntotoho adwuma dates.sort (Bere mu.PlainDate.fa toto ho);

Bere Mfinimfini Nsakrae Core Moment nhomakorabea no ntumi mmoa bere fã nsakrae. Sɛ wuhia saa dwumadie yi a, ɛsɛ sɛ wo nso wo instɔl moment-timezone package no. Saa pakete yi ntumi nwosow dua, na ɛno nti ebetumi de bi aka wo bundle kɛse ho kɛse. Sɛ wo instɔl moment-timezone wie a, wobɛtumi de tz kwan no adan Moment nneɛma akɔ time zone ahodoɔ mu. Sɛnea ɛte wɔ Moment oprehyɛn afoforo ho no, eyi sesa nea ɛwɔ ase noadeɛ. // Fa no sɛ U.S. Apuei Fam bere const mprempren = bere (); console.log (mprempren); // Bere <2026-02-28T20:08:20-05:00>

// Dane kɔ Pacific bere so. // Apuei fam bere a edi kan no ayera. now.tz ('Amerika / Los_Angeles'); console.log (mprempren); // Bere <2026-02-28T17:08:20-08:00>

Wɔakyekye bere fã dwumadie wɔ Temporal API no mu berɛ a wode Temporal.ZonedDateTime adeɛ redi dwuma. Saa nneɛma yi bi ne withTimeZone kwan a ɛsan de ZonedDateTime foforo a egyina hɔ ma bere koro no ara wɔ bere mu, nanso ɛwɔ bere fã a wɔakyerɛ no mu. // Bio, yɛfa no sɛ U.S. Apuei fam bere const seesei = Bere.Seesei.zonedDateTimeISO (); console.log (seesei.kɔBeaeString ()); // 2/28/2026, 8:12:02 awia EST

// Dane kɔ Pacific bere so const nowPacific = now.withTimeZone ('Amerika / Adehwere_Angeles'); console.log (mpremprenPacific.kɔBeaeString ()); // 2/28/2026, 5:12:02 PM PST

// Original ade no da so ara yɛ nea ɛnsakra console.log (seesei.kɔBeaeString ()); // 2/28/2026, 8:12:02 awia EST

Hyɛ no nsow: Nneɛma a wɔahyehyɛ a toLocaleString de san ba no, sɛnea edin no kyerɛ no, egyina mpɔtam hɔ so. Wɔyɛɛ nhwɛsoɔ koodu no wɔ en-US mpɔtam hɔ, enti ɔkwan a wɔfa so yɛ no te sɛ yei: 2/28/2026, 5:12:02 PM PST. Wɔ beae foforo no, ebia eyi bɛyɛ soronko. Sɛ nhwɛsoɔ no, wɔ en-GB locale no mu no, anka wobɛnya biribi te sɛ 28/2/2026, 17:12:02 GMT-8. Wiase Ankasa Refactoring Fa no sɛ yɛreyɛ app bi a yɛde bɛyɛ nhyehyɛe ama nsɛm a esisi wɔ bere nhyehyɛe ahorow mu. Saa app yi fã bi yɛ dwumadie, getEventTimes, a ɛfa ISO 8601 ahama a ɛgyina hɔ ma berɛ ne da a adeyɛ no bɛkɔ so, mpɔtam hɔ berɛ fã, ne berɛ a wɔde asi wɔn ani so. Dwumadi no yɛ bere ne date nhama a wɔahyehyɛ ama adeyɛ no wɔ bere fã abien no nyinaa mu. Sɛ wɔma dwumadie no input string a ɛnyɛ bere/date string a ɛfata a, ɛbɛtow mfomso. Here’s the original implementation, de Moment di dwuma (ɛhwehwɛ nso sɛ wɔde moment-timezone package no di dwuma).

fa bere fi ‘bere-bere-beae’ mu ba;

function getEventTimes (inputString, ɔdefoBerebea, botaeBerebea) { const bereFormat = 'MMM D, YYYY, h: mm: ss a z';

// 1. Yɛ bere a edi kan wɔ ɔdefo no bere fã mu const adeyɛBere = bere.tz ( inputString, . moment.ISO_8601, // Hwɛ kwan sɛ ISO 8601 ahama bi bɛba nokware, // Nkyekyɛmu a ɛyɛ katee ɔdefoɔTimeZone );

// Tow mfomso sɛ inputString no ankyerɛ da a ɛfata a sɛ (! adeyɛ Bere.yɛ Valid ()) { . throw new Error('Da/bere a ɛnteɛ a wɔde hyɛ mu'); } .

// 2. Bu bere a wode asi w’ani so no ho akontaa // CRITICAL: Ɛsɛ sɛ yɛyɛ clone, anaasɛ 'eventTime' sesa daa! const botaeBere = eventTime.clone ().tz (botaeBereBeae);

san kɔ { . mpɔtam hɔ: eventTime.format (bereFormat), . botae: botaeBere.format (bereFormat), . }; } .

const nhyehyɛe = getEventTimes ( '2026-03-05T15:00-05:00', Ɔde ne nsa kyerɛɛ ne so. 'America/New_York', 1999. Ɔde ne nsa kyerɛɛ ne so. ‘Europa/London’, 1999 mu. );

console.log (nhyehyɛe.mpɔtam hɔ); // Mar 5, 2026, awia 3:00:00 EST

console.log (nhyehyɛe. botae); // Mar 5, 2026, 8:00:00 anadwo GMT

Wɔ saa nhwɛsoɔ yi mu no, yɛde date format a wɔhwɛ kwan a ɛyɛ ISO 8601, a wɔde mmoa ahyɛ mu wɔ Moment mu redi dwuma. Yɛde strict parsing nso redi dwuma, a ɛkyerɛ sɛ Moment remmɔ mmɔden sɛ ɛde date string a ɛne format no nhyia bɛsusu ho. Sɛ wɔde date string a ɛnyɛ ISO twam a, ɛbɛma date adeɛ a ɛnnyɛ adwuma aba, na yɛtow mfomso. Temporal dwumadie no te sɛ nea ɛte saa ara, nanso ɛwɔ nsonsonoeɛ titire kakraa bi.

function getEventTimes (inputString, ɔdefoBerebea, botaeBerebea) { // 1. Parse input no tẽẽ kɔ Instant mu, afei yɛ // a ZonedDateTime wɔ ɔdefoɔ no zone mu. const instant = Bere.Ntɛm ara.fi (inputString); const eventTime = instant.toZonedDateBereISO (ɔdefoBereBeae);

// 2. Dane kɔ beae a wopɛ sɛ wokɔ no // Eyi de ade FOFORO bi san ba ankasa; 'eventTime' yɛ nea ahobammɔ wom. const targetTime = eventTime.ne BereBeae (botaeBereBeae);

// 3. Format denam Intl (a wɔde ahyɛ mu) so . const akwan horow = { . afe: 'akontaabu', . bosome: 'tiatiaa', . da: 'akontaabu', . dɔnhwerew: 'akontaabu', . simma: ‘2-digit’, . nea ɛto so abien: ‘2-digit’, . timeZoneName: 'tiatiaa'. };

san kɔ { . mpɔtam hɔ: eventTime.toLocaleString (navigator.kasa, akwan horow), . botae: targetTime.toLocaleString (navigator.kasa, akwan horow) }; } .

const nhyehyɛe = getEventTimes ( '2026-03-05T15:00-05:00', Ɔde ne nsa kyerɛɛ ne so. 'America/New_York', 1999. Ɔde ne nsa kyerɛɛ ne so. ‘Europa/London’, 1999 mu. );

console.log (nhyehyɛe.mpɔtam hɔ); // Ɔpɛpɔn 5, 2026, 3:00:00 PM EST

console.log (nhyehyɛe. botae); // Ɔpɛpɔn 5, 2026, 8:00:00 PM GMT

Moment no, ɛsɛ sɛ yɛkyerɛ format string pefee ma date strings a ɛbɛba no. Ɛmfa ho beaeɛ anaa beaeɛ a ɔde di dwuma no, wɔbɛhyehyɛ nhyiamu no mmerɛ bere nyinaa sɛ Mar 5, 2026, 3:00:00pm EST. Afei nso, enhia sɛ yɛtow exception pefee. Sɛ wɔde ahama a ɛnnyɛ adwuma kɔ Temporal.Instant.from a, Temporal bɛtow exception no ama yɛn. Ade biako a ɛsɛ sɛ yɛhyɛ no nsow ne sɛ, sɛ wɔde parsing katee mpo a, Moment version no da so ara yɛ mmerɛw kɛse. Temporal hwehwɛ sɛ bere fã a wɔde siw ano wɔ ahama no awiei. Ɛsɛ sɛ wo nso wohyɛ no nsow sɛ esiane sɛ yɛde navigator.language redi dwuma nti, saa koodu yi bɛkɔ so wɔ browser tebea mu nkutoo, efisɛ wɔankyerɛkyerɛ navigator mu wɔ Node.js tebea mu. Temporal dwumadie no de browser no mprempren locale (navigator.language) di dwuma, enti ɔdefoɔ no bɛnya event times formatted wɔ wɔn local time format mu. Wɔ en-US mpɔtam hɔ no, eyi yɛ Mar 5, 2026, 3:00:00 pm EST. Nanso, sɛ nea ɔde di dwuma no wɔ London, sɛ nhwɛso no, wɔbɛhyehyɛ dwumadi no mmere sɛ 5 Mar 2026, 15:00:00 GMT-5. Nsɛm a Wɔaboaboa Ano

Adeyɛ Moment.js Bere mu de Mprempren bere bere() . Bere.Seesei.zonedDateBereISO () . ISO a wɔrekyekyɛ mu bere(str) . Bere mu.Ntɛm ara.fi(str) . Fa bere ka ho .add(7, 'nna') (ɛsakra) . .add({ nna: 7 }) (ade foforo) . Nsonsonoe a ɛwɔ mu .diff(afoforo, ' nnɔnhwerew') . .efi(afoforo). nnɔnhwerew Bere a wɔde yɛ adwuma .tz('Beae/Edin') . .withTimeZone('Mpɔtam/Edin') .

Sɛ wohwɛ nea edi kan a, nsonsonoe no betumi ayɛ soronko kakra (na wɔ Temporal fam no, ɛtɔ mmere bi a ɛyɛ nsɛm a ɛyɛ katee na ɛyɛ katee) kasamufa, nanso mfaso atitiriw pii wɔ Temporal a wode bedi dwuma sen Moment.js so:

Sɛ́ wobɛda no adi pefee no kyerɛ sɛ nneɛma a ɛyɛ nwonwa ne mmoawa a wɔanhyɛ da no sua. Ebia ɛbɛyɛ te sɛ nea bere no yɛ nea ɛyɛ mmerɛw kɛse, nanso ɛfa “nsusuwii” a ɛtɔ mmere bi a ebetumi ama wɔde nna a ɛnteɛ aba. Sɛ wode biribi a enni mu ma Temporal a, ɛtow mfomso. Sɛ code no tu mmirika a, wunim sɛ woanya date a ɛfata. Moment betumi de kɛse a ɛho hia aka application’s bundle no ho, titiriw sɛ wode moment-timezone package no redi dwuma a. Temporal mfa hwee nka ho (bere a wɔde amena wɔ wo target browsers mu pɛ). Immutability ma wo ahotoso sɛ worenhwere anaasɛ worenkyerɛw data so da bere a woreyɛ date nsakrae ne dwumadi ahorow no. Bere ho mfonini ahorow (Instant, PlainDateTime, ZonedDateTime) a egyina w’ahiade so, baabi a Moment yɛ ade a wɔde kyekyere UTC bere nsɔano ho bere nyinaa. Temporal de Intl APIs no di dwuma ma date formatting, a ɛkyerɛ sɛ wobɛtumi anya locale-aware formatting a enhia sɛ wokyerɛ tokens pefee.

Nsɛm a Wɔahyɛ no Nsow Wɔ Polyfill no Ho Sɛnea yɛadi kan aka no, Temporal polyfill bi wɔ hɔ a ɛwɔ hɔ, a wɔakyekyɛ sɛ npm package a wɔato din @js-temporal/polyfill. Sɛ wopɛ sɛ wode Temporal di dwuma nnɛ a, wobɛhia saa polyfill yi de aboa browser te sɛ Safari a wɔmfaa API no nkɔma. Asɛmmɔne a ɛwɔ eyi ho ne sɛ ɛbɛka wo bundle kɛse ho. Asɛmpa no ne sɛ ɛda so ara de nea ennu bere anaa bere-bere-bere ka ho kɛse. Bundle akɛseɛ a wɔde toto ho sɛdeɛ Bundlephobia.com, wɛbsaet a ɛde npm package akɛseɛ ho nsɛm ma (klik package biara din so na wobɛhunu Bundlephobia nhwehwɛmu no bɔɔ amanneɛ no ni):

Nneɛma a wɔde ahyɛ mu Wɔayɛ no ketewaa bi Minified & wɔde gzipped ayɛ @js-bere mu/polyfill 154.1 kB na ɛwɔ hɔ 44.1 kB na ɛwɔ hɔ bere tiaa bi 294.4 kB na ɛwɔ hɔ 75.4 kB na ɛwɔ hɔ bere-bere-bere 1 MB na ɛwɔ hɔ 114.2 kB na ɛwɔ hɔ

Polyfill no nso wɔ abakɔsɛm mu no, ɛwɔ adwumayɛ ho nsɛm bi a atwa memory dwumadie ho ahyia, na bere a yɛrekyerɛw eyi no, wobu no sɛ ɛwɔ alpha tebea mu. Esiane eyi nti, ebia worempɛ sɛ wode bedi dwuma wɔ nneɛma a wɔyɛ mu kosi sɛ ebedu tebea a ɛho akokwaw kɛse mu. Asɛmpa foforo ne sɛ anidasoɔ wɔ mu sɛ polyfill no renhia bio (gye sɛ ɛhia sɛ woboa browser dedaw, nokwarem no). Bere a yɛrekyerɛw eyi no, Temporal de amena wɔ Chrome, Edge, ne Firefox mu. Ɛnnya nsiesiee ne ho koraa wɔ Safari mu, ɛwom sɛ ɛte sɛ nea ɛwɔ hɔ a ɛwɔ runtime frankaa wɔ Technology Preview a aba foforo no so.

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