Phantse naluphi na uhlobo lwesicelo esibhalwe kwiJavaScript sisebenza ngamaxesha okanye imihla kwindawo ethile. Ekuqaleni, oku bekukhawulelwe kwi-API yoMhla owakhelwe kuyo. Le API ibandakanya ukusebenza okusisiseko, kodwa ilinganiselwe kwinto enokuyenza. Amathala eencwadi eqela lesithathu afana ne-Moment.js, kunye nee-API ezakhelwe kamva ezifana ne-Intl APIs kunye ne-Temporal API entsha, yongeza ukuguquguquka okukhulu kakhulu ekusebenzeni ngamaxesha kunye nemihla. Ukunyuka nokuwa koMzuzwana.js I-Moment.js yilayibrari yeJavaScript enezixhobo ezinamandla zokusebenza kunye namaxesha kunye nemihla. Ibandakanya izinto ezingekhoyo ukusuka kwi-API yoMhla esisiseko, njengokukhohlisa indawo yexesha, kwaye yenza imisebenzi emininzi eqhelekileyo ibe lula. Umzuzu ukwabandakanya imisebenzi yokufomatha imihla kunye namaxesha. Yaba lithala leencwadi elisetyenziswa ngokubanzi kwizicelo ezininzi ezahlukeneyo. Nangona kunjalo, iMoment nayo yayinesabelo sayo semiba. Yilayibrari enkulu, kwaye inokongeza kakhulu kwisayizi ye-bundle yesicelo. Ngenxa yokuba ithala leencwadi alikuxhasi ukushukunyiswa komthi (uphawu lweebundle zale mihla ezinokususa iindawo ezingasetyenziswanga zamathala eencwadi), ithala leencwadi lilonke libandakanyiwe nokuba usebenzisa umsebenzi omnye okanye emibini kuphela. Omnye umba ngeMoment yinyani yokuba izinto ezizenzayo ziyaguquguquka. Ukubiza imisebenzi ethile kwinto yomzuzwana kuneziphumo ebezingalindelekanga kwaye iguqula ixabiso laloo nto. Oku kunokukhokelela ekuziphatheni okungalindelekanga okanye kwiimpazamo. Ngo-2020, abagcini beMoment bagqiba kwelokuba babeke ithala leencwadi kwindlela yokulungisa. Akukho phuhliso lutsha lwenziwayo, kwaye abagcini bacebisa ngokuchasene nokuyisebenzisela iiprojekthi ezintsha. Kukho ezinye iilayibrari zomhla weJavaScript, njengemihla-fns, kodwa kukho umdlali omtsha edolophini, i-API eyakhelwe ngqo kwiJavaScript: Yexeshana. Ngumgangatho omtsha ogcwalisa imingxuma ye-API yoMhla wokuqala kunye nokusombulula ezinye izithintelo ezifumaneka kwi-Moment kunye namanye amathala eencwadi. Yintoni Yexeshana? I-Temporal lixesha elitsha kunye nomhla we-API eyongezwa kumgangatho we-ECMAScript, ochaza iJavaScript yanamhlanje. Ukususela ngo-Matshi 20266, ifikelele kwiSigaba 4 senkqubo ye-TC39 (ikomiti ejongene neziphakamiso kunye nezongezo kulwimi lweJavaScript), kwaye iya kufakwa kwinguqu elandelayo yenkcazo ye-ECMAScript. Sele iphunyeziwe kwizikhangeli ezininzi: Chrome 144+ kunye neFirefox 139+, kunye neSafari ekulindeleke ukuba ilandele kungekudala. I-polyfill iyafumaneka kwizikhangeli ezingaxhaswanga kunye neeNode.js. I-Temporal API idala izinto ezithi, ngokubanzi, zimele amaxesha ngexesha. Ezi zinokuba zizitampu zexesha elizeleyo kunye nomhla kwizowuni yexesha elinikiweyo, okanye zinokuba ngumzekelo oqhelekileyo wexesha "lodonga lwewotshi" ngaphandle kwezowuni yexesha okanye ulwazi lomhla. Ezinye zezinto eziphambili zeTemporal ziquka:

Amaxesha anemihla okanye angenayo.Into yexeshana inokumela ixesha elithile ngomhla othile, okanye ixesha elingenalo naluphi na ulwazi lomhla. Umhla othile, ngaphandle kwexesha, nawo unokumelwa. Inkxaso yezowuni yexesha.Izinto zexeshana ziyayazi indawo yexesha kwaye inokuguqulwa kwiizowuni zexesha ezahlukeneyo. Umzuzu uxhasa imimandla yexesha, nayo, kodwa ifuna ithala leencwadi elongezelelweyo lendawo yexesha. Ukungaguquguquki.Xa into yeXeshana yenziwe, ayinakuguqulwa. I-arithmetic yexesha okanye uguqulo lwezowuni yexesha aluyiguquli into esisiseko. Endaweni yoko, bavelisa into entsha yeXesha. I-1-based indexing.Umthombo oqhelekileyo weebhugi kunye ne-Date API (kunye ne-Moment) kukuba iinyanga zi-zero-indexed. Oku kuthetha ukuba uJanuwari yinyanga ye-0, kunokuba inyanga ye-1 njengoko sonke siqonda ebomini bokwenene. Ukulungisa okwexeshana oku ngokusebenzisa i-1-based indexing - uJanuwari yinyanga yoku-1. Yakhelwe kwisikhangeli.Njengoko iTemporal yiAPI kwibhrawuza ngokwayo, ayongezi nto kubungakanani bebundle yesicelo sakho.

Kwakhona kubalulekile ukuba uqaphele ukuba umhla we-API awuhambi. Ngelixa i-Temporal ithatha indawo ye-API, ayisuswa okanye iyehliswa. Izicelo ezininzi ziya kwaphuka ukuba iibhrawuza zisuse ngequbuliso iDate API. Nangona kunjalo, kwakhona khumbula ukuba i-Moment ngoku ithathwa njengeprojekthi yelifa kwindlela yokulondoloza. Kulo lonke inqaku, siza kujonga ezinye "iindlela zokupheka" zokufuduka ikhowudi esekwe kwiMoment kwi-API entsha yeXesha. Masiqale ukuhlaziya! Ukudala Izinto zoMhla kunye nexesha Ngaphambi kokuba sisebenzise imihla kunye namaxesha, kufuneka senze izinto ezimele zona. Ukudala into yomzuzwana emele umhla kunye nexesha langoku, sebenzisa umsebenzi womzuzwana. const ngoku = moment(); console.log(ngoku); // Umzuzu<2026-02-18T21:26:29-05:00>

Le nto ngoku inokufomathwa okanye isetyenziswe njengoko kufuneka.

// guqulela kwi-UTC //isilumkiso: Oku kuguqula into ye-Moment kwaye ibeke kwimo ye-UTC! console.log(ngoku.utc()); // Umzuzu<2026-02-19T02:26:29Z>

// printa umtya ofomathiweyo-qaphela ukuba usebenzisa ixesha le-UTC ngoku console.log(ngoku.format('MM/DD/YYYY hh:mm:ss a')); // 02/19/2026 02:27:07 am

Into ephambili ekufuneka uyikhumbule malunga noMzuliswano kukuba into yeMoment ihlala ibandakanya ulwazi malunga nexesha kunye nomhla. Ukuba ufuna kuphela ukusebenza ngolwazi lwexesha, oku kudla ngokufanelekileyo, kodwa kunokubangela ukuziphatha okungalindelekanga kwiimeko ezifana neXesha lokuGcina iMini okanye iminyaka yokuxhuma, apho umhla unokuba nefuthe ekubaleni ixesha. Okwexeshana kubhetyebhetye ngakumbi. Unokwenza into emele umhla kunye nexesha langoku ngokudala i-Temporal.Instant into. Oku kubonisa inqaku ngexesha elichazwe kwixesha elisusela kwi-"epoch" (ezinzulwini zobusuku i-UTC ngoJanuwari 1, 1970). I-Temporal inokubhekisela oku kwangoko ngexesha kunye nokuchaneka kwenqanaba le-nanosecond. const ngoku = Temporal.Now.instant ();

// bona iinanoseconds ekrwada ukusukela kwixesha console.log(now.epochNanoseconds); // 1771466342612000000n

// ifomathi ye-UTC console.log(now.toString()); // 2026-02-19T01:55:27.844Z

// ifomathi yezowuni yexesha elithile console.log(now.toString({timeZone:'America/New_York'})); // 2026-02-18T20:56:57.905-05:00

Izinto zexeshana.Izinto ezikhawulezayo zisenokwenziwa ngexesha elithile kunye nomhla ngokusebenzisa indlela esuka kwi-static.

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

// Fometha ngoko nangoko kwizowuni yexesha lendawo. Qaphela ukuba oku kuyalawula kuphela // ukufomatha-ayitshintshi into njenge moment.utc yenza. console.log(myInstant.toString({timeZone:'America/New_York'})); // 2026-02-18T21:10:00-05:00

Unokwenza ezinye iindidi zezinto zeXesha, kubandakanya:

Temporal.PlainDate: Umhla ongenalo ulwazi lwexesha. Ixesha lexeshana: Ixesha elingenalo ulwazi lomhla. Temporal.ZonedDateTime: Umhla kunye nexesha kwizowuni yexesha elithile.

Nganye kwezi inendlela enokuthiwa ngayo ngento echaza umhla kunye/okanye ixesha, okanye umtya womhla wokucazulula. // Umhla nje const namhlanje = Temporal.PlainDate.from({ Unyaka: 2026, inyanga: 2, // qaphela ukuba sisebenzisa i-2 ngoFebruwari usuku: 18 }); console.log(namhlanje.toString()); // 2026-02-18

// Ixesha nje Const LunchTime = Temporal.PlainTime.from({ iyure: 12 }); console.log(lunchTime.toString()); // 12:00:00

// Umhla kunye nexesha kwi-US yexesha lexesha laseMpuma const dueAt = Temporal.ZonedDateTime.from({ ixesha: 'iMelika/eNew_York', Unyaka: 2026, inyanga: 3, usuku: 1, iyure: 12, umzuzu: 0, okwesibini: 0 }); console.log(dueAt.toString()); // 2026-03-01T12:00:00-05:00[Amerika/Entsha_York]

Ukucazulula Siye sajongana nokudalwa kwenkqubo yolwazi lomhla kunye nexesha. Ngoku makhe sijonge ukucazulula. I-Parsing yindawo enye apho i-Moment iguquguqukayo ngakumbi kune-API eyakhelwe ngaphakathi ye-Temporal. Ungacazulula umtya womhla ngokuwugqithisela kumsebenzi womzuzu. Ngengxoxo enye, umzuzu ulindele umtya womhla we-ISO, kodwa ungasebenzisa ezinye iifomati ukuba unikezela ngengxoxo yesibini echaza ifomathi yomhla esetyenziswayo.

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

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

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

Kwiinguqulelo ezindala, i-Moment ingenza uqikelelo olungcono lokucazulula nawuphi na umtya womhla ofomathiweyo ngokungekho mthethweni. Oku kunokukhokelela kwiziphumo ebezingalindelekanga. Umzekelo, ngaba 02-03-2026 February 2 okanye March 3? Ngesi sizathu, iinguqulelo ezintsha zeMoment zibonisa isilumkiso esibalaseleyo sokuhoxiswa ukuba sibizwe ngaphandle komtya womhla ofomathiweyo we-ISO (ngaphandle kokuba impikiswano yesibini enefomathi efunwayo nayo inikezelwe). Ixesha liza kucazulula kuphela umtya womhla ofomathwe ngokukodwa. Umtya kufuneka uhambelane nefomathi ye-ISO 8601 okanye ulwandiso lwayo, i-RFC 9557. Ukuba umtya womhla ongahambelaniyo ugqithiselwe kwindlela, i-Temporal iya kuphosa iRangeError.

// Ukusebenzisa umtya womhla we-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

// Ukusebenzisa umtya womhla ongaziwayo const otherDate = Temporal.Instant.from('2/21/26 9:00:00'); // Impazamo yeRange: Impazamo yexeshana: Unobumba ongasebenziyo ngelixa ulinganisa ixabiso lonyaka.

Iimfuno ezichanekileyo zomtya womhla zixhomekeke kuhlobo lwento yexeshana oyenzayo. Kulo mzekelo ungentla, i-Temporal.Instant ifuna i-ISO epheleleyoI-8601 okanye i-RFC 9557 umhla womtya ochaza umhla kunye nexesha kunye nokunciphisa indawo yexesha, kodwa unokwenza i-PlainDate okanye izinto ze-PlainTime usebenzisa i-subset yefomati yomhla. 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

Qaphela ukuba ezi ntambo kusafuneka zihambelane nefomathi elindelekileyo, okanye kuya kuphoswa impazamo.

// Ukusebenzisa imitya yexesha elingahambelaniyo. Ezi zonke ziya kuphosa iRangeError. Ixesha leXeshana.IiPlain.from('9:00'); Temporal.PlainTime.from('9:00:00 AM');

Ingcebiso yePro: Ukuphatha imitya engeyiyo eye-ISONgenxa yokuba iTemporal ibeka phambili ukuthembeka, ayizukuzama ukuqikelela ifomathi yomtya efana ne-02-01-2026. Ukuba umthombo wakho wedatha usebenzisa imitya enjalo, kuya kufuneka wenze ukuguqulwa komtya ukulungisa kwakhona amaxabiso kumtya we-ISO njengo-2026-02-01 ngaphambi kokuzama ukuyisebenzisa ngeTemporal.

Ukufomatha Nje ukuba unomzuzu okanye into yexeshana, uya kufuna ukuyiguqula ibe ngumtya ofomathiweyo ngaxa lithile. Lo ngumzekelo apho umzuzu urhabaxa ngakumbi. Ubiza indlela yefomati yento kunye nomtya wamathokheni achaza ifomathi yomhla oyifunayo. umhla wokuqina = umzuzu ();

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

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

Kwelinye icala, iTemporal ifuna ukuba ube nesandi ngakumbi. Izinto zexeshana, ezinje ngoko nangoko, zinendlela ye-toLocaleString eyamkela iindlela ezahlukeneyo zokufomatha ezichazwe njengeempawu zento.

const date = Temporal.Now.instant ();

// ngaphandle kweengxoxo, siya kufumana ifomati emiselweyo yendawo yangoku console.log(date.toLocaleString()); // 2/22/2026, 8:23:36 PM (ithatha indawo yase-en-US)

// dlula iinketho zokufomatha ukuvelisa umtya wefomati yesiko console.log(date.toLocaleString('en-US', { inyanga: 'nde', usuku: 'amanani', unyaka: 'inombolo', iyure: '2-digit', umzuzu: 'inani eli-2' })); // NgoFebruwari 22, 2026 ngo-8:23 PM

// dlula kuphela imihlaba oyifunayo kumtya wefomati console.log(date.toLocaleString('en-US', { inyanga: 'mfutshane', usuku: 'amanani' })); // NgoFebruwari 22

Ukufomatha umhla wexesha okunene kusebenzisa i-Intl.DateTimeFormat API (esele ifumaneka ngokulula kwizikhangeli zangoku) phantsi kwesivalo. Oko kuthetha ukuba unokwenza into enokuphinda isetyenziswe iDateTimeFormat ngeendlela zakho zokufomatha ngokwesiko, emva koko ugqithise izinto zexeshana kwindlela yayo yokufomatha. Ngenxa yoku, ayizixhasi iifomati zomhla wesiko njengoko umzuzu usenza. Ukuba ufuna into efana ne-'Q1 2026' okanye olunye ufomatho olukhethekileyo, unokufuna ikhowudi yokufomatha umhla wesiko okanye ufikelele kwithala leencwadi lomntu wesithathu. const formatter = entsha Intl.DateTimeFormat('en-US', { inyanga: 'iidijithi ezi-2', Usuku: 'idijithi ezi-2', unyaka: 'inombolo' });

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

Iithokheni zokufomatha umzuzu kulula ukuzibhala, kodwa azihambelani neendawo. Imitya yefomathi "ikhowudi enzima" izinto ezifana nomyalelo wenyanga / wosuku. Inzuzo yokusebenzisa into yoqwalaselo, njengoko iTemporal isenza, kukuba iya kuziqhelanisa ngokuzenzekelayo kuyo nayiphi na indawo enikiweyo kwaye isebenzise ifomathi echanekileyo. const date = Temporal.Now.instant ();

Const formatOptions = { inyanga: 'inombolo', usuku: 'amanani', unyaka: 'inombolo' };

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

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

Umhla izibalo Kwizicelo ezininzi, kuya kufuneka ugqibezele ukwenza izibalo ezithile ngomhla. Ungafuna ukongeza okanye ukuthabatha iiyunithi zexesha (iintsuku, iiyure, imizuzwana, njl.). Umzekelo, ukuba unomhla wangoku, unokufuna ukubonisa umsebenzisi umhla weveki e-1 ukusuka ngoku. Izinto zomzuzwana zineendlela ezinjengokudibanisa kunye nokuthabatha ezenza le misebenzi. Le misebenzi ithatha ixabiso kunye neyunithi, umzekelo: add(7, 'iintsuku'). Omnye umehluko obaluleke kakhulu phakathi kweXesha kunye neThutyana, nangona kunjalo, kukuba xa usenza ezi zibalo zomhla, into ephantsi iguqulwa kwaye ixabiso layo lokuqala lilahlekile. const ngoku = moment();

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

const nextWeek = now.add(7, 'iintsuku'); console.log(kwiveki ezayo); // Umzuzu<2026-03-03T20:08:36-05:00>

// Gotcha - into yokuqala yatshintshwa console.log(ngoku); // Umzuzu<2026-03-03T20:08:36-05:00>

Ukunqanda ukuphulukana nomhla wokuqala, ungafowunela i-clone kwi-Moment into ukwenza ikopi. const ngoku= umzuzu(); const nextWeek = ngoku.clone().yongeza (7, 'iintsuku');

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

console.log(kwiveki ezayo); // Umzuzu<2026-03-03T20:12:55-05:00>

Kwelinye icala, izinto zeXeshana aziguquki. Nje ukuba udale into efana ne-Instant, PlainDate, njalo njalo, ixabiso laloo nto alisoze litshintshe. Izinto zexeshana nazo zineendlela zokudibanisa kunye nokuthabatha. I-Temporal yinto encinci yokukhetha malunga nokuba zeziphi iiyunithi zexesha ezinokongezwa kuzo iintlobo zezinto. Umzekelo, awungekhe wongeze iintsuku kuNgxatsho:

const ngoku = Temporal.Now.instant (); const nextWeek = now.add ({iintsuku: 7}); // Impazamo yeRange: Impazamo yexeshana: Eyona yunithi inkulu ayinakuba yiyunithi yomhla

Oku kungenxa yokuba izinto ze-Instant zibonisa inqaku elithile ngexesha kwi-UTC kwaye ikhalenda-agnostic. Kuba ubude bosuku bungatshintsha ngokusekwe kwimigaqo yezowuni yexesha elifana neXesha LokuGcina iMini, olu balo alufumaneki ngeNyezo. Unokwenza, nangona kunjalo, ukwenza lo msebenzi kwezinye iindidi zezinto, njengePlainDateTime: const ngoku = Temporal.Now.plainDateTimeISO (); console.log(now.toLocaleString()); // 2/24/2026, 8:23:59 PM

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

// Qaphela ukuba i-PlainDateTime yoqobo ihlala ingatshintshanga console.log(now.toLocaleString()); // 2/24/2026, 8:23:59 PM

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

Ungabala nokuba lingakanani ixesha phakathi kwezinto ezimbini zoMzuzwana okanye zeThutyana. Ngomsebenzi we-Moment's diff, kufuneka unikeze iyunithi ye-granularity, kungenjalo iya kubuyisela umahluko kwii-milliseconds. const date1 = moment('2026-02-21T09:00:00'); const date2 = moment('2026-02-22T10:30:00');

console.log(umhla2.diff(umhla1)); // 91800000

console.log(umhla2.diff(umhla1, 'iintsuku')); // 1

Ukwenza oku ngento yeXeshana, ungadlula enye into yeXeshana ukuya kuyo de okanye ukusukela kwiindlela. Oku kubuyisela into yeXeshana.Ubude bexesha eliqulethe ulwazi malunga nomahluko wexesha. Into yoBude bexesha ineempawu zecandelo ngalinye lomahluko, kwaye inokuvelisa i-ISO 8601 yomtya wexesha emele umahluko wexesha.

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

// iYunithi enkulu ixela eyona yunithi inkulu yexesha ekumele imele // kwithuba lokubala const diff = date2.since(umhla1, {iYunithi enkulu: 'usuku'});

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

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

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

console.log(diff.toString()); // P1DT1H30M // (ISO 8601 umtya ubude: 1 usuku, 1 iyure, 30 imizuzu)

Ukuthelekisa Imihla kunye namaxesha Umzuzu kunye neThutyana zombini zikuvumela ukuba uthelekise imihla kunye namaxesha ukugqiba ukuba yeyiphi eza ngaphambi kwenye, kodwa thatha iindlela ezahlukeneyo nge-API. Umzuzu ubonelela ngeendlela ezinje nge-isBefore, isAfter, kwaye isSame ukuthelekisa izinto ezimbini zomzuzu. const date1 = moment('2026-02-21T09:00:00'); const date2 = moment('2026-02-22T10:30:00');

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

I-Temporal isebenzisa indlela yokuthelekisa emileyo ukwenza uthelekiso phakathi kwezinto ezimbini zohlobo olufanayo. Ibuyisela -1 ukuba umhla wokuqala uza phambi kowesibini, 0 ukuba bayalingana, okanye 1 ukuba umhla wokuqala uza emva kowesibini. Lo mzekelo ulandelayo ubonisa indlela yokuthelekisa izinto ezimbini zePlainDate. Zombini iingxoxo eziya kuTemporal.PlainDate.compare kufuneka zibe zizinto zePlainDate.

const date1 = Temporal.PlainDate.from({unyaka: 2026, inyanga: 2, usuku: 24}); const date2 = Temporal.PlainDate.from({unyaka: 2026, inyanga: 3, usuku: 24});

// umhla1 uza ngaphambi komhla2, ngoko -1 console.log(Temporal.PlainDate.compare(umhla1, umhla2));

// Impazamo ukuba sizama ukuthelekisa izinto ezimbini zeentlobo ezahlukeneyo console.log(Temporal.PlainDate.compare(date1, Temporal.Now.instant())); // TypeError: Imposiso yexeshana: Imihlaba yePlainDate engasebenziyo inikezelwe.

Ngokukodwa, oku kwenza kube lula ukuhlenga uluhlu lwezinto zeXeshana ngokulandelelana kwazo. // Uluhlu lwezinto zeXeshana.PlainDate imihla ekhoyo = [ ... ];

// sebenzisa iTemporal.PlainDate.compare njengomsebenzi wokuthelekisa imihla.sort(Temporal.PlainDate.compare);

Uguqulo lweNdawo yexesha Ithala leencwadi elingundoqo alixhasi uguqulo lwezowuni yexesha. Ukuba ufuna oku kusebenza, kuyafuneka ukuba ufakele iphakheji yexesha lezowuni. Le phakheji ayinakushukunyiswa ngumthi, kwaye ke ngoko inokongeza kakhulu kwisayizi yakho ye-bundle. Nje ukuba ufake ummandla wexesha, unokuguqula izinto zeMoment zibe ziindawo zexesha ezahlukeneyo ngendlela ye-tz. Njengakweminye imisebenzi yomzuzu, oku kuguqula isisekophikisa. // Ukucinga ixesha lase-US laseMpuma const ngoku = moment(); console.log(ngoku); // Umzuzu<2026-02-28T20:08:20-05:00>

// Guqula kwixesha lePasifiki. // Ixesha lokuqala laseMpuma lilahlekile. ngoku.tz('America/Los_Angeles'); console.log(ngoku); // Umzuzu<2026-02-28T17:08:20-08:00>

Umsebenzi wezowuni yexesha lakhelwe kwi-Temporal API xa usebenzisa into yeTemporal.ZonedDateTime. Ezi zinto ziquka indlela ye- withTimeZone ebuyisela iZonedDateTime entsha emele umzuzu omnye ngexesha, kodwa kwindawo yexesha elichaziweyo. // Kwakhona, ucinga ixesha lase-US laseMpuma const ngoku = Temporal.Now.zonedDateTimeISO (); console.log(now.toLocaleString()); // 2/28/2026, 8:12:02 PM EST

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

// Into yokuqala ihlala ingatshintshi console.log(now.toLocaleString()); // 2/28/2026, 8:12:02 PM EST

Qaphela: Amaxabiso afomathiweyo abuyiswe yi-ToLocaleString, njengoko igama lisitsho, ixhomekeke kwindawo. Ikhowudi yesampula yaphuhliswa kwi-en-US yendawo, ngoko ke ifomathi ifana nale: 2/28/2026, 5:12:02 PM PST. Kwenye indawo, oku kunokwahluka. Umzekelo, kwindawo ye-en-GB, ungafumana into efana no-28/2/2026, 17:12:02 GMT-8. IRefactoring yehlabathi yokwenyani Masithi sakha i-app yokucwangcisa imisitho kuzo zonke iindawo zamaxesha. Inxalenye yale app ngumsebenzi, getEventTimes, ethatha umtya we-ISO 8601 omele ixesha kunye nomhla wesiganeko, indawo yexesha lendawo, kunye nendawo ekujoliswe kuyo. Umsebenzi udala ixesha elifomathiweyo kunye nemitya yomhla yesiganeko kuzo zombini iindawo zexesha. Ukuba umsebenzi unikwe umtya wegalelo elingelilo ixesha/umtya osebenzayo, uya kuphosa impazamo. Nalu ukuphunyezwa koqobo, usebenzisa i-Moment (ekwafuna ukusetyenziswa kwephakheji yexesha lezowuni).

ngenisa umzuzu ukusuka 'kwizowuni yexesha';

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

// 1. Yenza umzuzu wokuqala kwindawo yexesha lomsebenzisi Const eventTime = moment.tz( inputString, moment.ISO_8601, // Lindela umtya we-ISO 8601 yinyaniso, // Ukwahlulahlula okungqongqo umsebenzisiTimeZone );

// Phosa imposiso ukuba i-inputString ayimelanga umhla osebenzayo ukuba (!eventTime.isValid()) { jula imposiso entsha('Umhla ongasebenziyo/igalelo lexesha'); }

// 2. Bala ixesha ekujoliswe kulo // KUBALULEKILEYO: Kufuneka sidibanise, okanye 'ixesha lesiganeko' litshintshe ngonaphakade! const targetTime = eventTime.clone().tz(targetTimeZone);

buya { yendawo: eventTime.format(timeFormat), Ithagethi: Ixesha ekujoliswe kulo.format(ixesha leFomathi), }; }

Const schedule = getEventTimes( '2026-03-05T15:00-05:00', 'eMelika/eNew_York', 'IYurophu / iLondon', );

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

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

Kulo mzekelo, sisebenzisa ifomati yomhla elindelekileyo ye-ISO 8601, eyakhiwe ngokuluncedo kwi-Moment. Sikwasebenzisa ukwahlulahlula okungqongqo, okuthetha ukuba umzuzu awuzukuzama ukuqikelela ngomtya womhla ongahambelani nefomathi. Ukuba umtya womhla ongeyo-ISO ugqithisiwe, oko kuya kubangela into engasebenziyo yomhla, kwaye siphosa impazamo. Ukuphunyezwa kweThutyana kubonakala kufana, kodwa kunomahluko obalulekileyo ambalwa.

umsebenzi getEventTimes(inputString, userTimeZone, targetTimeZone) { // 1. Hlalutya igalelo ngqo kwi-Instant, emva koko udale // iZonedDateTime kwindawo yomsebenzisi. const instant = Temporal.Instant.from(inputString); const eventTime = instant.toZonedDateTimeISO(userTimeZone);

// 2. Guqulela kwindawo ekujoliswe kuyo // Oku kubuyisela ngokuzenzekelayo into ENTSHA; 'Ixesha lesiganeko' likhuselekile. const targetTime = eventTime.withTimeZone(targetTimeZone);

// 3. Ifomathi usebenzisa i-Intl (eyakhelwe ngaphakathi) iinketho ezininzi = { unyaka: 'inombolo', inyanga: 'mfutshane', usuku: 'amanani', iyure: 'amanani', Umzuzu: 'Inani eli-2', okwesibini: '2-digit', ixeshaZoneName: 'mfutshane' };

buya { yendawo: eventTime.toLocaleString(navigator.language, options), ekujoliswe kuko: targetTime.toLocaleString(navigator.language, options) }; }

Const schedule = getEventTimes( '2026-03-05T15:00-05:00', 'eMelika/eNew_York', 'IYurophu / iLondon', );

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

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

Ngomzuzu, kufuneka sicacise ngokuthe gca umtya wefomati yesiphumo semitya yomhla. Nokuba yeyiphi indawo yomsebenzisi okanye indawo, amaxesha omnyhadala aya kuhlala efomathiwe ngoMatshi 5, 2026, 3:00:00.pm EST. Kwakhona, akufuneki ukuba sikhuphe ngaphandle ngokucacileyo. Ukuba umtya ongasebenziyo ugqithiselwe kwi-Tempor.Instant.from, i-Temporal iya kuphosa ngaphandle kwethu. Inye into ekufuneka uyiqaphele kukuba nokuba kucazululwe ngokungqongqo, inguqulelo yeMoment isethambile. Okwexeshana kufuna umda wexesha ekupheleni komtya. Kufuneka kwakhona uqaphele ukuba ekubeni sisebenzisa i-navigator.language, le khowudi iya kuqhuba kuphela kwindawo yesiphequluli, njengoko umqhubi wenqanawa engachazwanga kwindawo ye-Node.js. Ukuphunyezwa kwexeshana kusebenzisa indawo yangoku yesikhangeli (navigator.language), ngoko ke umsebenzisi uya kufumana ngokuzenzekelayo amaxesha esiganeko afomathiweyo kwifomathi yexesha labo lendawo. Kwindawo ye-en-US, lo nguMatshi 5, 2026, 3:00:00 pm EST. Nangona kunjalo, ukuba umsebenzisi useLondon, umzekelo, amaxesha esiganeko aya kufomathwa njenge-5 Mar 2026, 15:00:00 GMT-5. Isishwankathelo

Isenzo Umzuzu.js Okwexeshana Ixesha langoku umzuzu() Temporal.Now.zonedDateTimeISO() Ukwahlulahlula i-ISO umzuzu(str) Okwexeshana.Ngoko nangoko.ukusuka(str) Yongeza ixesha .yongeza (7, 'iintsuku') (iyatshintsha) .yongeza ({iintsuku: 7}) (into entsha) Umahluko .diff(enye, 'iiyure') .ukusukela(ezinye).iiyure Indawo yexesha .tz('Zone/Igama') .ngeTimeZone('Zone/Name')

Xa ujonga nje kuqala, umahluko ungohluka kancinci (kwaye kwimeko yeXeshana, ngamanye amaxesha i-verbose eninzi kwaye ingqongqo ngakumbi) isivakalisi, kodwa kukho iingenelo ezininzi ezingundoqo ekusebenziseni iTemporal over Moment.js:

Ukungcaca ngakumbi kuthetha ukothuka okumbalwa kunye neempazamo ebezingalindelekanga. Umzuzu unokubonakala uthambile ngakumbi, kodwa ubandakanya "uqikelelo," olunokuthi ngamanye amaxesha lubangele imihla engalunganga. Ukuba unika iTemporal into engasebenziyo, iphosa impazamo. Ukuba ikhowudi iyasebenza, uyazi ukuba unomhla osebenzayo. Umzuzu unokongeza ubungakanani obubalulekileyo kwinqwaba yesicelo, ngakumbi ukuba usebenzisa iphakheji yexesha lezowuni. Okwexeshana ayongezi nto (emva kokuba ithunyelwe kwizikhangeli zakho ekujoliswe kuzo). Ukungaguquki kukunika ukuzithemba ukuba awusoze ulahlekelwe okanye ubhale ngaphezulu idatha xa usenza uguqulo lomhla kunye nokusebenza. Umelo olwahlukileyo lwexesha (Instant, PlainDateTime, ZonedDateTime) ngokuxhomekeke kwiimfuno zakho, apho uMzuzwi usoloko usisisongelo esijikeleze isitampu se-UTC. Okwexeshana kusebenzisa i-Intl APIs yokufomatha umhla, nto leyo ethetha ukuba unokuba nofomato lolwazi lwendawo ngaphandle kokuchaza ngokucacileyo iithokheni.

Amanqaku kwiPolyfill Njengoko kukhankanyiwe ngaphambili, kukho i-polyfill yeXeshana ekhoyo, isasazwe njengephakheji ye-npm ebizwa ngokuba ngu-@js-temporal/polyfill. Ukuba ufuna ukusebenzisa iTemporal namhlanje, uya kuyidinga le polyfill ukuxhasa izikhangeli ezinjengeSafari ezingekathumeli i-API okwangoku. Iindaba ezimbi ngale nto kukuba iyakongeza kwisayizi yakho ye-bundle. Iindaba ezimnandi zezokuba isongeza kancinci kakhulu kunomzuzu okanye indawo yexesha. Nalu uthelekiso lweesayizi zenqwaba njengoko kuxelwe yi-Bundlephobia.com, iwebhusayithi ebonisa ulwazi malunga nobungakanani bepakethe ye-npm (cofa igama ngalinye lephakheji ukubona uhlalutyo lwe-Bundlephobia):

Iphakheji Minified Miniified & gzip @js-temporal/polyfill 154.1 kB 44.1 kB umzuzu 294.4 kB 75.4 kB ixesha lexesha 1 MB 114.2 kB

I-polyfill nayo ngokwembali inemicimbi ethile yokusebenza malunga nokusetyenziswa kwememori, kwaye ngexesha lokubhala, ithathwa njengekwimeko yealpha. Ngenxa yoku, usenokungafuni ukuyisebenzisa kwimveliso ide ifikelele kwisimo esiqolileyo. Ezinye iindaba ezimnandi kukuba ngethemba lokuba i-polyfill ayizukufuneka ixesha elide (ngaphandle kokuba ufuna ukuxhasa izikhangeli ezindala, ewe). Ngexesha lokubhalwa, iTemporal ithunyelwe ngeChrome, Edge, kunye neFirefox. Ayikalungi ncam kwiSafari okwangoku, nangona ibonakala ngathi iyafumaneka ngeflegi yexesha lokubaleka kumboniso weTekhnoloji yamva nje.

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