Inenge chero mhando yekushandisa yakanyorwa muJavaScript inoshanda nenguva kana misi mune imwe nzvimbo. Pakutanga, izvi zvaingogumira kune yakavakirwa-mukati Date API. Iyi API inosanganisira basa rekutanga, asi rakaganhurwa mune zvarinogona kuita. Mataibhurari ebato rechitatu seMoment.js, uye gare gare akavakirwa-mukati maAPI akadai seIntl APIs uye itsva Temporal API, anowedzera kuchinjika kukuru mukushanda nenguva nemazuva. Kusimuka nekudonha kwechinguvana.js Moment.js iJavaScript raibhurari ine simba rekushandisa nenguva nemazuva. Inosanganisira zvisipo kubva kune yakakosha Date API, senge nguva yekushandura nzvimbo, uye inoita kuti akawanda akajairika mashandiro ave nyore. Moment inosanganisirawo mabasa ekugadzirisa misi nenguva. Yakava raibhurari inoshandiswa nevakawanda mumashandisirwo mazhinji akasiyana. Nekudaro, Moment yaivewo neyayo nyaya. Iyo raibhurari hombe, uye inogona kuwedzera zvakanyanya kune saizi yeapplication. Nekuti raibhurari haitsigire kuzunungusa kwemuti (chinhu chemazuva ano mabundler anogona kubvisa zvikamu zvisingashandiswe zvemaraibhurari), raibhurari yese yeMoment inosanganisirwa kunyangwe ukangoshandisa rimwe kana maviri emabasa ayo. Imwe nyaya neMoment inyaya yekuti zvinhu zvainogadzira zvinoshanduka. Kudaidza mamwe mabasa pachinhu cheMoment kune mhedzisiro uye inoshandura kukosha kwechinhu ichocho. Izvi zvinogona kutungamirira kumaitiro asingatarisirwi kana tsikidzi. Muna 2020, vagadziri veMoment vakafunga kuisa raibhurari mukugadzirisa. Hapana hutsva hwekuvandudza huri kuitwa, uye vanochengeta vanokurudzira kusaishandisa kumapurojekiti matsva. Kune mamwe maraibhurari emazuva eJavaScript, akadai semazuva-fns, asi kune mutambi mutsva mutaundi, API yakavakirwa zvakananga muJavaScript: Temporal. Ndiyo chiyero chitsva chinozadza maburi eiyo yekutanga Date API pamwe nekugadzirisa zvimwe zvipimo zvinowanikwa muMoment uye mamwe maraibhurari. Chii Chinonzi Temporal? Temporal inguva nyowani uye zuva API iri kuwedzerwa kune ECMAScript standard, inotsanangura yemazuva ano JavaScript. Kubva munaKurume 20266, yasvika Chikamu chechina cheTC39 process (komiti inoona nezvezvikumbiro uye kuwedzera kumutauro weJavaScript), uye ichaverengerwa mune inotevera vhezheni yeECMAScript yakatarwa. Yakatoitwa mumabhurawuza akati wandei: Chrome 144+ uye Firefox 139+, neSafari inotarisirwa kutevera munguva pfupi. A polyfill inowanikwawo kune asingatsigirwe mabhurawuza uye Node.js. Iyo Temporal API inogadzira zvinhu izvo, kazhinji, zvinomiririra nguva nenguva. Aya anogona kunge ari enguva yakazara uye zvitambi zvemazuva mune yakapihwa nguva zoni, kana anogona kunge ari generic muenzaniso we "wall wachi" pasina chero nguva yenguva kana ruzivo rwezuva. Zvimwe zvezvinhu zvikuru zveTemporal zvinosanganisira:

Nguva dzine kana dzisina misi Zuva chairo, pasina nguva, rinogonawo kumiririrwa. Tsigiro yenguva Moment inotsigira nzvimbo dzenguva, zvakare, asi inoda imwe raibhurari yenguva-yenguva. Immutability.Kana chinhu cheTemporal chagadzirwa, hachigoni kuchinjwa. Nguva yemasvomhu kana kushandurwa kwenzvimbo yenguva haigadzirise chinhu chiri pasi. Pane kudaro, vanogadzira chinhu chitsva cheTemporal. 1-based Indexing Izvi zvinoreva kuti Ndira mwedzi 0, kwete mwedzi 1 sezvatinonzwisisa tese muhupenyu chaihwo. Temporal inogadzirisa izvi nekushandisa 1-based indexing - Ndira mwedzi 1. Iyo yakavakirwa mubrowser.Sezvo Temporal iri API mubrowser pachayo, hapana chaino wedzera pakukura kwechishandiso chako.

Izvo zvakakoshawo kuziva kuti Date API haisi kuenda. Nepo Temporal ichitsiva iyi API, haisi kubviswa kana kurerutswa. Mazhinji maapplication angaputsika kana mabhurawuza akangoerekana abvisa iyo Date API. Nekudaro, zvakare ramba uchifunga kuti Moment ikozvino yave kutorwa senhaka purojekiti mukugadzirisa maitiro. Muchikamu chasara, tichatarisa mamwe "mabikirwo" ekufambisa Moment-based code kuenda kuTemporal API itsva. Ngatitange refactoring! Kugadzira Zuva Nenguva Zvinhu Tisati tatanga misi nenguva, tinofanira kugadzira zvinhu zvinozvimiririra. Kugadzira chinhu cheMoment chinomiririra zuva razvino uye nguva, shandisa iyo nguva basa. const now = moment(); console.log(ikozvino); // Moment<2026-02-18T21:26:29-05:00>

Ichi chinhu ikozvino chinogona kufomatidzwa kana kushandiswa sezvinodiwa.

// shandura kuUTC //yambiro: Izvi zvinoshandura chinhu cheMoment uye chinochiisa muUTC modhi! console.log(now.utc()); // Moment<2026-02-19T02:26:29Z>

// dhinda tambo yakarongwa - cherechedza kuti iri kushandisa iyo UTC nguva ikozvino console.log(now.format('MM/DD/YYYY hh:mm:ss a')); // 02/19/2026 02:27:07 am

Chinhu chakakosha kuyeuka nezve Moment ndechekuti chinhu cheMoment chinogara chichisanganisira ruzivo nezve nguva uye zuva. Kana iwe uchingoda chete kushanda neruzivo rwenguva, izvi zvinogara zvakanaka, asi zvinogona kukonzera hunhu husingatarisirwi mumamiriro ezvinhu akaita seZuva Rekuchengetedza Nguva kana makore anosvetuka, uko zuva rinogona kuita maverengero enguva. Temporal inonyanya kushanduka. Unogona kugadzira chinhu chinomiririra zuva razvino nenguva nekugadzira chinhu cheTemporal.Instant. Izvi zvinomiririra imwe nguva inotsanangurwa nenguva kubva "nguva" (pakati pehusiku UTC musi waNdira 1, 1970). Temporal inogona kureva iyi pakarepo nenguva ine nanosecond-level chaiyo. const now = Temporal.Now.instant();

// ona mbishi nanoseconds kubvira panguva console.log(now.epochNanoseconds); // 1771466342612000000n

// fomati yeUTC console.log(now.toString()); // 2026-02-19T01:55:27.844Z

// fomati yeimwe nzvimbo yenguva console.log(now.toString({timeZone:'America/New_York'})); // 2026-02-18T20:56:57.905-05:00

Temporal.Zvinhu zvepakarepo zvinogonawo kugadzirwa kwenguva yakatarwa uye zuva uchishandisa iyo kubva kune static nzira.

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

// Fomati chiriporipo munzvimbo yenguva yenzvimbo. Ziva kuti izvi zvinotonga chete // iyo fomati - haishandure chinhu senge moment.utc inoita. console.log(myInstant.toString({timeZone:'America/New_York'})); // 2026-02-18T21:10:00-05:00

Iwe unogona zvakare kugadzira mamwe marudzi eTemporal zvinhu, kusanganisira:

Temporal.PlainDate: Zuva risina ruzivo rwenguva. Temporal.PlainTime: Nguva isina ruzivo rwezuva. Temporal.ZonedDateTime: Zuva nenguva mune yakatarwa nguva zoni.

Imwe neimwe yeiyi ine kubva panzira iyo inogona kudanwa nechinhu chinotsanangudza zuva uye/kana nguva, kana tambo yemazuva kuti ipfuure. // Ingori zuva const nhasi = Temporal.PlainDate.from({ gore: 2026, mwedzi: 2, // cherechedza isu tiri kushandisa 2 yaFebruary zuva: 18 }); console.log(today.toString()); // 2026-02-18

// Inguva chete const lunchTime = Temporal.PlainTime.from({ awa: 12 }); console.log(lunchTime.toString()); // 12:00:00

// Zuva uye nguva muUS Eastern time zone const dueAt = Temporal.ZonedDateTime.from({ TimeZone: 'America/New_York', gore: 2026, mwedzi: 3, zuva: 1, awa: 12, miniti: 0, wechipiri: 0 }); console.log(dueAt.toString()); // 2026-03-01T12:00:00-05:00[America/New_York]

Parsing Isu takafukidza kugadzirwa kwechirongwa chemazuva uye ruzivo rwenguva. Zvino ngatitarisei pakuenzanisa. Parsing ndiyo imwe nzvimbo iyo Moment inoshanduka kupfuura yakavakirwa-mukati Temporal API. Iwe unogona kusiyanisa tambo yezuva nekuipfuudza kune iyo nguva basa. Nenharo imwe chete, Moment inotarisira ISO date tambo, asi unogona kushandisa mamwe mafomati kana iwe ukapa yechipiri nharo inotsanangura iyo date fomati iri kushandiswa.

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

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

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

Mushanduro dzechinyakare, Moment yaizoita fungidziro yakanakisa yekuparura chero tambo yemazuva yakarongwa zvisina tsarukano. Izvi zvinogona kutungamirira kumigumisiro isingatarisirwi. Semuenzaniso, ndeye 02-03-2026 Kukadzi 2 kana Kurume 3? Nechikonzero ichi, vhezheni nyowani dzeMoment dzinoratidza yambiro yakasarudzika kana ichidanwa isina ISO yakamisikidzwa date tambo (kunze kwekunge iyo yechipiri nharo ine fomati yaunoda yapihwa zvakare). Temporal inongo patsanura tambo yemazuva yakanyatsorongwa. Tambo yacho inofanira kuenderana neISO 8601 fomati kana kuwedzera kwayo, RFC 9557. Kana tambo yedati isingaenderane ikapfuudzwa kukubva kumethodhe, Temporal ichakanda RangeError.

// Kushandisa RFC 9557 date tambo 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

// Kushandisa tambo yemazuva isingazivikanwe const otherDate = Temporal.Instant.from('2/21/26 9:00:00'); // RangeError: Chikanganiso chenguva: Chimiro chisina kunaka paunenge uchibvisa kukosha kwegore.

Izvo chaizvo zvinodikanwa zvetambo yemazuva zvinoenderana nekuti ndeupi rudzi rweTemporal chinhu chauri kugadzira. Mumuenzaniso wepamusoro, Temporal.Instant inoda ISO yakazara8601 kana RFC 9557 tambo yemazuva inotsanangura zuva uye nguva ine nguva yekumisikidza, asi unogona zvakare kugadzira zvinhu zvePlainDate kana PlainTime uchishandisa subset yefomati yemazuva. 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

Ziva kuti tambo idzi dzinofanira kuramba dzichienderana nechimiro chinotarisirwa, kana kukanganisa kuchakandwa.

// Kushandisa nguva isingaenderani netambo. Izvi zvese zvinokanda RangeError. Temporal.PlainTime.from('9:00'); Temporal.PlainTime.from('9:00:00 AM');

Pro tip: Kubata asiri-ISO tamboNekuti Temporal inotungamira kuvimbika, haizoyedze kufungidzira fomati yetambo senge 02-01-2026. Kana yako data sosi ichishandisa tambo dzakadai, iwe unozofanirwa kuita kumwe kunyengedza tambo kuti urongezve hunhu kuita ISO tambo senge 2026-02-01 usati waedza kuishandisa neTemporal.

Kugadzira Paunenge uchinge uine Chinhu cheNguva kana Chenguva, iwe ungangoda kuchishandura kuita tambo yakarongwa pane imwe nguva. Uyu ndiwo muenzaniso wekuti Moment iri diki diki. Iwe unodaidza nzira yefomati yechinhu netambo yematokeni inotsanangura yaunoda zuva fomati. const date = nguva();

console.log(date.format('MM/DD/YYYY')); // 02/22/2026

console.log(date.format('MMMM Ita YYYY, h:mm:ss a')); // February 22nd 2026, 8:18:30 pm

Kune rimwe divi, Temporal inoda kuti iwe uwedzere kutaura. Zvinhu zvenguva, zvakaita seInstant, zvine toLocaleString nzira inogamuchira mafomati akasiyana-siyana anotsanangurwa sezvivakwa zvechinhu.

const date = Temporal.Now.instant();

// pasina nharo, tichawana iyo yakasarudzika fomati yenzvimbo yazvino console.log(date.toLocaleString()); // 2/22/2026, 8:23:36 PM (zvichireva nzvimbo yeen-US)

// pfuura mafomati sarudzo kugadzira tambo yefomati tambo console.log(date.toLocaleString('en-US', { mwedzi: 'refu', zuva: 'nhamba', gore: 'nhamba', awa: '2-manhamba', miniti: '2-manhamba' })); // February 22, 2026 at 8:23 PM

// chete pfuura minda yaunoda mune iyo fomati tambo console.log(date.toLocaleString('en-US', { mwedzi: 'pfupi', zuva: 'nhamba' })); // Kukadzi 22

Temporal date formatting inotoshandisa Intl.DateTimeFormat API (iyo yave kutowanika mumabhurawuza emazuva ano) pasi pehodhi. Izvi zvinoreva kuti iwe unogona kugadzira chinhu chinogoneka cheDateTimeFormat nemaitiro ako ekufomatidza, wobva wapfuudza zvinhu zveTemporal kune yayo fomati nzira. Nekuda kweizvi, haitsigire mafomati emazuva etsika sezvinoita Moment. Kana iwe uchida chimwe chinhu chakaita se'Q1 2026' kana mamwe mafomati ane hunyanzvi, ungangoda imwe tsika yemazuva ekufomati kodhi kana kusvika kune yechitatu-bato raibhurari. const formatter = itsva Intl.DateTimeFormat('en-US', { mwedzi: '2-manhamba', zuva: '2-manhamba', gore: 'nhamba' });

const date = Temporal.Now.instant(); console.log(formatter.format(date)); // 02/22/2026

Moment's fomati tokens zviri nyore kunyora, asi hazvisi zvenzvimbo-ane hushamwari. Iyo fomati tambo "hard code" zvinhu zvakaita semwedzi/zuva kurongeka. Chakanakira kushandisa chinhu chekugadzirisa, sezvinoita Temporal, ndechekuti inongozvigadzirisa kune chero yakapihwa nzvimbo uye kushandisa iyo chaiyo fomati. const date = Temporal.Now.instant();

const formatOptions = { mwedzi: 'nhamba', zuva: 'nhamba', gore: 'nhamba' };

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

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

Date kuverenga Mune akawanda maapplication, iwe unozofanirwa kupedzisira waita mamwe maverengero pazuva. Iwe unogona kuda kuwedzera kana kubvisa zvikamu zvenguva (mazuva, maawa, masekondi, nezvimwewo). Semuenzaniso, kana uine zuva razvino, ungangoda kuratidza mushandisi zuva vhiki 1 kubva ikozvino. Zvinhu zvenguva pfupi zvine nzira dzakadai sekuwedzera nekubvisa dzinoita ma operation aya. Aya mabasa anotora kukosha uye yuniti, semuenzaniso: wedzera (7, 'mazuva'). Mumwe mutsauko wakakosha pakati peNguva neTemporal, zvisinei, ndewekuti kana uchiita maverengero emazuva aya, chinhu chiri pazasi chinogadziridzwa uye kukosha kwayo kwepakutanga kunorasika. const now = moment();

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

const nextWeek = now.add(7, 'mazuva'); console.log(rinoteveraWeek); // Moment<2026-03-03T20:08:36-05:00>

// Gotcha - chinhu chepakutanga chakashandurwa console.log(ikozvino); // Moment<2026-03-03T20:08:36-05:00>

Kuti udzivise kurasikirwa nezuva rekutanga, unogona kufonera clone pane iyo Moment chinhu kuti ugadzire kopi. const now= nguva(); const nextWeek = now.clone().add(7, 'mazuva');

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

console.log(rinoteveraWeek); // Moment<2026-03-03T20:12:55-05:00>

Nekune rimwe divi, zvinhu zveTemporal hazvichinji. Paunenge uchinge wagadzira chinhu senge Instant, PlainDate, uye zvichingodaro, kukosha kwechinhu ichocho hakuzombochinja. Zvinhu zvenguva pfupi zvakare zvine nzira dzekuwedzera nekubvisa. Temporal isarudzo diki yekuti ndeapi mayuniti enguva anogona kuwedzerwa kune mhando yechinhu. Semuenzaniso, haugone kuwedzera mazuva kuInstant:

const now = Temporal.Now.instant(); const nextWeek = now.add({mazuva: 7}); // RangeError: Chikanganiso chenguva: Yakakura unit haigone kuve yemazuva unit

Izvi zvinodaro nekuti zvinhu zvepakarepo zvinomiririra imwe nzvimbo munguva muUTC uye ndeyekarenda-agnostic. Nekuti kureba kwezuva kunogona kushanduka zvichienderana nemitemo yenzvimbo yakadai seNguva Yekuchengetedza Kwemasikati, kuverenga uku hakusipo Pakarepo. Iwe unogona, zvisinei, kuita oparesheni iyi pane mamwe marudzi ezvinhu, senge PlainDateTime: const now = Temporal.Now.plainDateTimeISO(); console.log(now.toLocaleString()); // 2/24/2026, 8:23:59 PM

const nextWeek = now.add({mazuva: 7});

// Ziva kuti yekutanga PlainDateTime inoramba isina kuchinjika console.log(now.toLocaleString()); // 2/24/2026, 8:23:59 PM

console.log(inoteveraWeek.toLocaleString()); // 3/3/2026, 8:23:59 PM

Iwe unogona zvakare kuverenga kuti inguvai iri pakati pezvinhu zviviri zveMoment kana Temporal. NeMoment's diff function, unofanirwa kupa unit ye ​​granularity, zvikasadaro inodzosa mutsauko mumamilliseconds. const date1 = moment('2026-02-21T09:00:00'); const date2 = moment('2026-02-22T10:30:00');

console.log(date2.diff(date1)); // 91800000

console.log(date2.diff(date1, 'mazuva')); // 1

Kuti uite izvi nechinhu cheTemporal, unogona kupfuudza chimwe chinhu cheTemporal kune chayo kusvika kana kubva maitiro. Izvi zvinodzosa chinhu cheTemporal.Duration chine ruzivo nezve musiyano wenguva. Iyo Duration chinhu chine zvivakwa zvechimwe nechimwe chikamu chemutsauko, uye zvakare inogona kugadzira ISO 8601 yenguva tambo inomiririra mutsauko wenguva.

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

// yakakuraUniti inotsanangura iyo yakakura yuniti yenguva yekumiririra // muhuwandu hwekuverenga const diff = date2.since(date1, { largestUnit: 'day'});

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

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

console.log(diff.minutes); // 30

console.log(diff.toString()); // P1DT1H30M // (ISO 8601 tambo yenguva: 1 zuva, 1 awa, 30 maminetsi)

Kuenzanisa Mazuva Nenguva Nguva uye Nguva zvese zvinokutendera iwe kuenzanisa misi nenguva kuti uone kuti ndeipi inouya pamberi peimwe, asi tora nzira dzakasiyana neAPI. Moment inopa nzira dzakadai seIsBefore, isAfter, uye isSame kuenzanisa zvinhu zviviri zveMoment. const date1 = moment('2026-02-21T09:00:00'); const date2 = moment('2026-02-22T10:30:00');

console.log(date1.isBefore(date2)); // chokwadi

Temporal inoshandisa static kuenzanisa nzira kuita kuenzanisa pakati pezvinhu zviviri zvemhando imwechete. Inodzoka -1 kana zuva rekutanga risati rasvika rechipiri, 0 kana vakaenzana, kana 1 kana zuva rekutanga richinge rauya rechipiri. Muenzaniso unotevera unoratidza nzira yekufananidza zvinhu zviviri zvePlainDate. Mapoka maviri eTemporal.PlainDate.compare anofanira kunge ari zvinhu zvePlainDate.

const date1 = Temporal.PlainDate.from({gore: 2026, mwedzi: 2, zuva: 24}); const date2 = Temporal.PlainDate.from({gore: 2026, mwedzi: 3, zuva: 24});

// date1 rinouya zuva risati rasvika2, saka -1 console.log(Temporal.PlainDate.compare(date1, date2));

// Kukanganisa kana tikaedza kuenzanisa zvinhu zviviri zvemhando dzakasiyana console.log(Temporal.PlainDate.compare(date1, Temporal.Now.instant())); // TypeError: Chikanganiso chenguva: Invalid PlainDate minda yakapihwa.

Kunyanya, izvi zvinoita kuti zvive nyore kuronga hurongwa hweTemporal zvinhu zvichitevedzana. // Mutsara weTemporal.PlainDate zvinhu const dates = [...];

// shandisa Temporal.PlainDate.compare sebasa rekuenzanisa dates.sort(Temporal.PlainDate.compare);

Nguva Yekushandurwa Kwenguva Iyo yakakosha Moment raibhurari haitsigire kushandurwa kwenzvimbo yenguva. Kana iwe uchida kuita uku, iwe zvakare unofanirwa kuisa iyo nguva-yenguva-pakeji. Iyi pasuru haisi muti-inozununguka, uye saka inogona kuwedzera zvakanyanya kune yako bundle saizi. Kana uchinge waisa nguva-nguva, unogona kushandura zvinhu zveMoment kune dzakasiyana-siyana nguva neiyo tz nzira. Sezvimwe nezvimwe mashandiro eMoment, izvi zvinoshandura zviri pasiobject. // Tichifunga US Eastern nguva const now = moment(); console.log(ikozvino); // Moment<2026-02-28T20:08:20-05:00>

// Shandura kuPacific nguva. // Nguva yekutanga yekuMabvazuva yakarasika. now.tz('America/Los_Angeles'); console.log(ikozvino); // Moment<2026-02-28T17:08:20-08:00>

Kushanda kwenzvimbo yenguva kunovakwa muTemporal API kana uchishandisa chinhu cheTemporal.ZonedDateTime. Zvinhu izvi zvinosanganisira nzira ineTimeZone inodzosa ZonedDateTime itsva inomiririra nguva imwe chete panguva, asi munzvimbo yakatarwa yenguva. // Zvekare, tichifunga US Eastern nguva const now = Temporal.Now.zonedDateTimeISO(); console.log(now.toLocaleString()); // 2/28/2026, 8:12:02 PM EST

// Shandura kuPacific nguva const nowPacific = now.withTimeZone('America/Los_Angeles'); console.log(nowPacific.toLocaleString()); // 2/28/2026, 5:12:02 PM PST

// Chinhu chekutanga chinoramba chisina kuchinjwa console.log(now.toLocaleString()); // 2/28/2026, 8:12:02 PM EST

Ongorora: Hwoko dzakarongwa dzakadzoserwa neToLocaleString, sezvinoreva zita, zvinoenderana nenzvimbo. Iyo kodhi yemuenzaniso yakagadziridzwa munharaunda ye-en-US, saka mafomati akaita seizvi: 2/28/2026, 5:12:02 PM PST. Mune imwe nzvimbo, izvi zvinogona kunge zvakasiyana. Semuyenzaniso, munharaunda yeen-GB, waizowana chimwe chinhu senge 28/2/2026, 17:12:02 GMT-8. A Real-world Refactoring Ngatitii tiri kugadzira app yekuronga zviitiko munzvimbo dzese dzenguva. Chikamu cheiyi app ibasa, getEventTimes, iyo inotora ISO 8601 tambo inomiririra nguva uye zuva rechiitiko, nguva yenzvimbo, uye nguva yakatarwa. Basa racho rinogadzira nguva yakarongeka uye tambo dzemazuva echiitiko munzvimbo mbiri dzenguva. Kana basa racho rakapihwa tambo yekuisa iyo isiri iyo yakakodzera nguva / zuva tambo, inokanda kukanganisa. Heano ekutanga kuita, uchishandisa Moment (inodawo kushandiswa kweiyo nguva-yenguva pasuru).

pinza nguva kubva ku'moment-timezone';

basa getEventTimes(inputString, userTimeZone, targetTimeZone) { const timeFormat = 'MMM D, YYYY, h:mm:ss a z';

// 1. Gadzira nguva yekutanga munharaunda yenguva yemushandisi const eventTime = moment.tz( inputString, moment.ISO_8601, // Tarisira ISO 8601 tambo chokwadi, // Kunyatsotsanangura userTimeZone );

// Kanda chikanganiso kana iyo inputString isingamiriri zuva rakakodzera kana (!eventTime.isValid()) { kanda Kanganiso nyowani ('Isiriyo zuva / nguva yekuisa'); }

// 2. Verenga nguva yakatarwa // ZVINOKOSHA: Tinofanira kutevedzera, kana kuti 'chiitikoTime' chinoshanduka zvachose! const targetTime = eventTime.clone().tz(targetTimeZone);

dzoka { munharaunda: chiitikoTime.format(timeFormat), chinangwa: targetTime.format(timeFormat), }; }

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

console.log(schedule.local); // Kurume 5, 2026, 3:00:00 pm EST

console.log(schedule.target); // Mar 5, 2026, 8:00:00 pm GMT

Mumuenzaniso uyu, tiri kushandisa iyo inotarisirwa zuva fomati ye ISO 8601, iyo inobatsira kuvakwa muMoment. Isu tiri kushandisawo kwakasimba parsing, zvinoreva kuti Moment haizoyedze kufungidzira netambo yemazuva isingaenderane nefomati. Kana tambo isiri-ISO yemazuva ikapfuura, inoguma nechinhu chisina kukodzera zuva, uye tinokanda chikanganiso. Kuitwa kweTemporal kunotaridzika zvakafanana, asi kune misiyano mishoma yakakosha.

basa getEventTimes(inputString, userTimeZone, targetTimeZone) { // 1. Rondedzera zvinopinza zvakananga muInstant, wobva wagadzira // a ZonedDateTime munharaunda yemushandisi. const instant = Temporal.Instant.from(inputString); const eventTime = instant.toZonedDateTimeISO(userTimeZone);

// 2. Shandura kunzvimbo yakanangwa // Izvi zvinodzorera otomatiki chinhu CHITSVA; 'EventTime' yakachengeteka. const targetTime = eventTime.withTimeZone(targetTimeZone);

// 3. Fomati uchishandisa Intl (yakavakirwa-mukati) Const options = { gore: 'nhamba', mwedzi: 'pfupi', zuva: 'nhamba', awa: 'nhamba', miniti: '2-manhamba', chechipiri: '2-manhamba', timeZoneName: 'pfupi' };

dzoka { local: eventTime.toLocaleString(navigator.language, options), chinangwa: targetTime.toLocaleString(navigator.language, sarudzo) }; }

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

console.log(schedule.local); // Kurume 5, 2026, 3:00:00 PM EST

console.log(schedule.target); // Mar 5, 2026, 8:00:00 PM GMT

NeMoment, isu tinofanirwa kutsanangura zvakajeka fomati yetambo yemazuva anobuda. Pasinei nenzvimbo yemushandisi kana kwaanogara, nguva dzechiitiko dzinogara dzakagadzirwa saKurume 5, 2026, 3:00:00.pm EST. Zvakare, isu hatifanirwe kukanda pachena kusarudzika. Kana tambo isiriyo ikatambidzwa kuTemporal.Instant.from, Temporal ichaita kusarudzika kwatiri. Chinhu chimwe chekucherechedza ndechekuti kunyangwe nekunyatso patsanura, iyo Moment vhezheni ichiri kureruka. Temporal inoda nguva yenguva yekubvisa pamagumo etambo. Iwe unofanirwawo kucherechedza kuti sezvo isu tichishandisa navigator.language, iyi code inongoshanda mubrowser environment, sezvo mufambisi asingatsanangurirwe munharaunda yeNode.js. Kuitwa kweTemporal kunoshandisa nzvimbo yebrowser yazvino (navigator.language), saka mushandisi anongowana nguva dzezviitiko dzakaumbwa muchimiro chenguva yenzvimbo yavo. Munzvimbo yeen-US, izvi ndiKurume 5, 2026, 3:00:00 pm EST. Nekudaro, kana mushandisi ari muLondon, semuenzaniso, nguva dzezviitiko dzichaumbwa se5 Mar 2026, 15:00:00 GMT-5. Summary

Chiito Moment.js Temporal Nguva yazvino nguva() Temporal.Now.zonedDateTimeISO() Kuongorora ISO nguva(str) Temporal.Instant.from(str) Wedzera nguva .add(7, 'mazuva') (mutates) .add({mazuva: 7 }) (chinhu chitsva) Musiyano .diff(zvimwe, 'maawa') .sezvo(mamwe).maawa Nguva yenguva .tz('Zone/Zita') .withTimeZone('Zone/Zita')

Pakutanga kuona, musiyano unogona kunge wakasiyana zvishoma (uye kana iri yeTemporal, dzimwe nguva yakawanda verbose uye yakanyanya kuomarara) syntax, asi pane akati wandei mabhenefiti ekushandisa Temporal pamusoro peMoment.js:

Kunyatsobuda pachena kunoreva kushomeka kunoshamisa uye tsikidzi dzisingatarisirwe. Nguva inogona kuita seyakapfava, asi inosanganisira "guesswork," iyo dzimwe nguva inogona kukonzera misi isiriyo. Kana iwe ukapa Temporal chimwe chinhu chisingashande, chinokanda mhosho. Kana iyo kodhi ichimhanya, unoziva kuti une zuva rakakodzera. Nguva inogona kuwedzera hukuru hwakakosha kune bundle rekushandisa, kunyanya kana uri kushandisa nguva-yenguva pasuru. Temporal haiwedzeri chinhu (kana ichinge yatumirwa mumabhurawuza ako anotangwa). Kusachinja kunokupa chivimbo chekuti haufe wakarasikirwa kana kunyora pamusoro data paunenge uchishandura zuva uye mashandisirwo. Yakasiyana inomiririra yenguva (Instant, PlainDateTime, ZonedDateTime) zvichienderana nezvaunoda, uko Moment inogara yakaputira yakatenderedza UTC timestamp. Temporal inoshandisa iyo Intl APIs yefomati yemazuva, zvinoreva kuti unogona kuve nenharaunda-inoziva fomati pasina kutsanangura zvakajeka tokeni.

Zvinyorwa PaPolyfill Sezvambotaurwa, kune Temporal polyfill iripo, yakagoverwa senpm package inonzi @js-temporal/polyfill. Kana iwe uchida kushandisa Temporal nhasi, iwe unozoda iyi polyfill kutsigira mabhurawuza seSafari anga asati atumira API. Nhau dzakaipa neizvi ndezvekuti inowedzera kune yako bundle saizi. Nhau dzakanaka ndedzekuti ichiri kuwedzera zvakanyanya zvishoma pane nguva kana nguva-nguva-nguva. Heino kuenzanisa kwehukuru hwemasumbu sezvakataurwa neBundlephobia.com, webhusaiti inopa ruzivo pane npm mapakeji saizi (tinya pazita rega rega repasuru kuti uone iyo Bundlephobia ongororo):

Package Minified Minified & gzipped @js-temporal/polyfill 154.1 kB 44.1 kB nguva 294.4 kB 75.4 kB moment-timezone 1 MB 114.2 kB

Iyo polyfill zvakare yakambove nenyaya dzekuita dzakatenderedza kushandiswa kwendangariro, uye panguva yekunyora, inofungidzirwa kunge iri mune alpha state. Nekuda kweizvi, ungasada kuishandisa mukugadzira kudzamara yasvika pakukura. Imwe nhau dzakanaka ndedzekuti tarisiro iyo polyfill haizodikanwa kwenguva yakareba (kunze kwekunge iwe uchida kutsigira mabhurawuza echikuru, hongu). Panguva yekunyora, Temporal yakatumira muChrome, Edge, uye Firefox. Haisati yanyatso gadzirira muSafari, kunyangwe ichiita kunge iripo nerutime mureza pane yazvino Technology Preview.

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