Cishe noma yiluphi uhlobo lohlelo lokusebenza olubhalwe ku-JavaScript lusebenza nezikhathi noma nezinsuku ngomthamo othile. Ekuqaleni, lokhu bekukhawulelwe ku-API Yedethi eyakhelwe ngaphakathi. Le API ihlanganisa ukusebenza okuyisisekelo, kodwa ilinganiselwe kulokho engakwenza. Imitapo yolwazi yezinkampani zangaphandle njenge-Moment.js, kanye nama-API akhelwe kamuva afana ne-Intl APIs kanye ne-Temporal API entsha, engeza ukuguquguquka okukhulu kakhulu ekusebenzeni nezikhathi nezinsuku. Ukukhuphuka Nokuwa Kwesikhashana.js I-Moment.js ilabhulali ye-JavaScript enezinsiza ezinamandla zokusebenza nezikhathi nezinsuku. Ihlanganisa izici ezingekho kusukela ku-API Yedethi eyisisekelo, njengokukhohlisa kwendawo yesikhathi, futhi yenza imisebenzi eminingi evamile ibe lula. Isikhathi futhi sihlanganisa imisebenzi yokufometha amadethi nezikhathi. Yaba umtapo osetshenziswa kabanzi ezinhlelweni eziningi ezahlukene. Kodwa-ke, i-Moment nayo yaba nengxenye yayo yezinkinga. Ilabhulali enkulu, futhi ingangeza kakhulu kusayizi wenqwaba yohlelo lokusebenza. Ngenxa yokuthi umtapo wolwazi awukusekeli ukunyakaziswa kwesihlahla (isici sezinqwaba zesimanje ezingasusa izingxenye ezingasetshenzisiwe zamalabhulali), yonke ilabhulali ye-Moment ifakiwe ngisho noma usebenzisa umsebenzi wayo owodwa noma emibili kuphela. Enye inkinga nge-Moment iqiniso lokuthi izinto ezidalayo ziyaguquleka. Ukubiza imisebenzi ethile entweni ye-Moment kunemiphumela engemihle futhi kushintsha inani laleyo nto. Lokhu kungaholela ekuziphatheni okungalindelekile noma iziphazamisi. Ngo-2020, abanakekeli be-Moment banquma ukubeka umtapo wezincwadi kumodi yokulungisa. Akukho ukuthuthukiswa kwesici esisha okwenziwayo, futhi abanakekeli batusa ukuthi singasisebenziseli amaphrojekthi amasha. Kukhona eminye imitapo yolwazi yedethi ye-JavaScript, njenge-date-fns, kodwa kunomdlali omusha edolobheni, i-API eyakhelwe ngqo ku-JavaScript: Temporal. Kuyindinganiso entsha egcwalisa izimbobo ze-API Yosuku lokuqala futhi ixazulule eminye imikhawulo etholakala ku-Moment nakwamanye amalabhulali. Iyini Isikhashana? I-Temporal iyi-API entsha yesikhathi nedethi eyengezwa kuzinga le-ECMAScript, elichaza i-JavaScript yesimanje. Kusukela ngo-March 20266, isifinyelele ku-Stage 4 senqubo ye-TC39 (ikomidi elengamele iziphakamiso nezengezo olimini lwe-JavaScript), futhi lizofakwa enguqulweni elandelayo yokucaciswa kwe-ECMAScript. Isivele isetshenziswe kuziphequluli ezimbalwa: I-Chrome 144+ ne-Firefox 139+, kanti i-Safari kulindeleke ukuthi ilandele maduze. I-polyfill iyatholakala nasezipheqululini ezingasekelwa kanye ne-Node.js. I-Temporal API idala izinto, ngokuvamile, ezimele izikhathi ngesikhathi. Lezi kungaba izitembu zesikhathi esigcwele nezedethi endaweni yesikhathi enikeziwe, noma zingaba isenzakalo esivamile "sewashi lasodongeni" ngaphandle kwanoma iyiphi izoni yesikhathi noma ulwazi lwedethi. Ezinye zezici eziyinhloko ze-Temporal zihlanganisa:

Izikhathi ezinezinsuku noma ezingenazo.Into Yesikhashana ingamela isikhathi esithile ngedethi ethile, noma isikhathi esingenalo ulwazi lwedethi. Idethi ethile, ngaphandle kwesikhathi, nayo ingamelwa. Ukwesekwa kwendawo yesikhathi.Izinto zesikhashana ziyazi ngokugcwele izoni yesikhathi futhi zingaguqulwa kuzo zonke izindawo zesikhathi ezihlukene. Isikhathi sisekela izindawo zesikhathi, futhi, kodwa sidinga umtapo wezincwadi wezoni yesikhathi eyengeziwe. Ukungaguquki.Uma into Yesikhashana isidaliwe, ayikwazi ukushintshwa. Ukuguqulwa kwe-arithmetic yesikhathi noma izoni yesikhathi akuyiguquli into engaphansi. Kunalokho, bakhiqiza into entsha Yesikhashana. Ukukhomba okusekelwe ku-1.Umthombo ojwayelekile weziphazamisi nge-Date API (kanye ne-Moment) ukuthi izinyanga azikhonjiswa eziro. Lokhu kusho ukuthi uJanuwari yinyanga engu-0, kunenyanga ye-1 njengoba sonke siqonda empilweni yangempela. Okwesikhashana kulungisa lokhu ngokusebenzisa inkomba esekelwe koku-1 - uJanuwari yinyanga 1. Yakhelwe kusiphequluli.Njengoba i-Temporal iyi-API esipheqululini ngokwaso, ayingezi lutho kusayizi wenqwaba yohlelo lwakho lokusebenza.

Kubalulekile futhi ukuqaphela ukuthi i-Date API ayisuki. Ngenkathi i-Temporal idlula le API, ayisuswa noma ayihoxiswa. Izinhlelo zokusebenza eziningi zingaphuka uma iziphequluli zisusa ngokuzumayo i-Date API. Nokho, futhi khumbula ukuthi i-Moment manje isithathwa njengephrojekthi yefa kumodi yokulungisa. Kuwo wonke ama-athikili, sizobheka "amaresiphi" athile okuthutha ikhodi esuselwe ku-Moment ku-Temporal API entsha. Ake siqale ukwenza kabusha! Ukudala Izinto Zedethi Nesikhathi Ngaphambi kokuthi sikwazi ukukhohlisa amadethi nezikhathi, kufanele sakhe izinto ezimele zona. Ukuze udale Into Yesikhashana emele idethi nesikhathi samanje, sebenzisa umsebenzi wesikhashana. const now = moment(); console.log(manje); // Isikhathi<2026-02-18T21:26:29-05:00>

Le nto manje ingafomethwa noma isetshenziswe njengoba kudingeka.

// guqulela ku-UTC //isixwayiso: Lokhu kushintsha into ye-Moment futhi kuyibeka kumodi ye-UTC! console.log(now.utc()); // Isikhathi<2026-02-19T02:26:29Z>

// phrinta iyunithi yezinhlamvu efomethiwe - qaphela ukuthi isebenzisa isikhathi se-UTC manje console.log(now.format('MM/DD/YYYY hh:mm:ss a')); // 02/19/2026 02:27:07 am

Into esemqoka okufanele uyikhumbule mayelana ne-Moment ukuthi into ye-Moment ihlale ihlanganisa ulwazi mayelana nesikhathi nosuku. Uma udinga kuphela ukusebenza ngolwazi lwesikhathi, lokhu ngokuvamile kulungile, kodwa kungabangela ukuziphatha okungalindelekile ezimweni ezifana ne-Daylight Saving Time noma iminyaka ye-leap, lapho idethi ingaba nomthelela ekubaleni kwesikhathi. I-Temporal iyavumelana nezimo. Ungakha into emele idethi nesikhathi samanje ngokwakha into Yesikhashana.Into esheshayo. Lokhu kumelela iphuzu ngesikhathi elichazwa isikhathi kusukela “enkathini yesikhathi” (phakathi kwamabili i-UTC ngo-January 1, 1970). I-Temporal ingabhekisela kulokhu okusheshayo ngesikhathi ngokunemba kweleveli ye-nanosecond. const manje = Temporal.Now.instant();

// bona ama-nanosecond aluhlaza kusukela esikhathini console.log(now.epochNanoseconds); // 1771466342612000000n

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

// ifomethi yendawo ethile yesikhathi console.log(now.toString({timeZone:'America/New_York' })); // 2026-02-18T20:56:57.905-05:00

Izinto zesikhashana.Izinto ezisheshayo nazo zingadalelwa isikhathi esithile nosuku kusetshenziswa indlela esuka ku-static.

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

// Fometha osheshayo endaweni yesikhathi yasendaweni. Qaphela ukuthi lokhu kulawula kuphela // ukufometha - ayiguquli into njenge- moment.utc yenza. console.log(myInstant.toString({timeZone:'America/New_York' })); // 2026-02-18T21:10:00-05:00

Ungakwazi futhi ukudala ezinye izinhlobo zezinto zesikhashana, okuhlanganisa:

I-Temporal.PlainDate: Usuku olungenalo ulwazi lwesikhathi. I-Temporal.PlainTime: Isikhathi esingenalo ulwazi losuku. I-Temporal.ZonedDateTime: Idethi nesikhathi endaweni ethile yesikhathi.

Ngayinye yalezi inendlela yokusuka engabizwa ngento ecacisa idethi kanye/noma isikhathi, noma iyunithi yezinhlamvu yedethi okufanele ihlaziywe. // Usuku nje const today = Temporal.PlainDate.from({ unyaka: 2026, inyanga: 2, // inothi sisebenzisa u-2 ngoFebhuwari usuku: 18 }); console.log(today.toString()); // 2026-02-18

// Isikhathi nje const lunchTime = Temporal.PlainTime.from({ ihora: 12 }); console.log(lunchTime.toString()); // 12:00:00

// Idethi nesikhathi endaweni yesikhathi yase-US Eastern const dueAt = Temporal.ZonedDateTime.from({ Indawo yesikhathi: 'America/New_York', unyaka: 2026, inyanga: 3, usuku: 1, ihora: 12, iminithi: 0, okwesibili: 0 }); console.log(dueAt.toString()); // 2026-03-01T12:00:00-05:00[America/New_York]

Ukuhlahlela Sihlanganise ukwakhiwa okuhleliwe kolwazi lwedethi nesikhathi. Manje ake sibheke ukuhlukanisa. Ukuhlaziya indawo eyodwa lapho i-Moment ivumelana nezimo kakhulu kune-API eyakhelwe ngaphakathi Yesikhashana. Ungakwazi ukuhlaziya iyunithi yezinhlamvu yedethi ngokuyidlulisela kumsebenzi wesikhashana. Nge-agumenti eyodwa, i-Moment ilindele iyunithi yezinhlamvu yedethi ye-ISO, kodwa ungasebenzisa amanye amafomethi uma unikeza impikiswano yesibili ecacisa ifomethi yedethi esetshenziswayo.

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); // Isikhathi<2026-02-21T09:00:00-05:00>

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

Ezinguqulweni ezindala, i-Moment ingenza ukuqagela okungcono kakhulu ukucozulula noma iyiphi iyunithi yezinhlamvu yedethi efomethwe ngokungafanele. Lokhu kungaholela emiphumeleni engalindelekile. Isibonelo, ingabe 02-03-2026 February 2 noma March 3? Ngalesi sizathu, izinguqulo ezintsha ze-Moment zibonisa isexwayiso esivelele sokuhoxisa uma sibizwa ngaphandle kweyunithi yezinhlamvu yedethi efomethwe yi-ISO (ngaphandle kwalapho kunikezwe i-agumenti yesibili enefomethi oyifunayo). I-Temporal izoncozulula kuphela iyunithi yezinhlamvu yedethi efomethwe ngokukhethekile. Iyunithi yezinhlamvu kufanele ihambisane nefomethi ye-ISO 8601 noma isandiso sayo, i-RFC 9557. Uma iyunithi yezinhlamvu yedethi engahambisani nemithetho idluliswa isuka endleleni, i-Temporal izophonsa i-RangeError.

// Ukusebenzisa iyunithi yezinhlamvu yedethi ye-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 iyunithi yezinhlamvu yedethi engaziwa const otherDate = Temporal.Instant.from('2/21/26 9:00:00'); // I-RangeError: Iphutha lesikhashana: Uhlamvu olungavumelekile ngenkathi kudluliswa inani lonyaka.

Izidingo eziqondile zochungechunge lwedethi zincike ekutheni udala luphi uhlobo lwento Yesikhashana. Esibonelweni esingenhla, i-Temporal.Instant idinga i-ISO egcwele8601 noma i-RFC 9557 yeyunithi yezinhlamvu yedethi ecacisa idethi nesikhathi ngokulungiswa kwendawo yesikhathi, kodwa ungakwazi futhi ukudala izinto ze-PlainDate noma ze-PlainTime usebenzisa isethi engaphansi yefomethi yedethi. 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 ukuthi lezi zinhlamvu kufanele zihambisane nefomethi elindelekile, noma iphutha lizophonswa.

// Ukusebenzisa iyunithi yezinhlamvu zesikhathi ezingathobeli. Konke lokhu kuzophonsa i-RangeError. I-Temporal.PlainTime.from('9:00'); Temporal.PlainTime.from('9:00:00 AM');

Ithiphu yochwepheshe: Ukuphatha amayunithi ezinhlamvu okungewona awe-ISONgenxa yokuthi Okwesikhashana ukubeka phambili ukwethembeka, ngeke kuzame ukuqagela ifomethi yeyunithi yezinhlamvu efana no-02-01-2026. Uma umthombo wakho wedatha usebenzisa izintambo ezinjalo, uzodinga ukwenza ukukhohlisa kweyunithi yezinhlamvu ukuze uhlele kabusha amanani abe yiyunithi yezinhlamvu ye-ISO efana no-2026-02-01 ngaphambi kokuzama ukuyisebenzisa nge-Temporal.

Ukufometha Uma usunento Yesikhashana noma Yesikhashana, uzofuna ukuyiguqula ibe iyunithi yezinhlamvu efomethiwe ngesikhathi esithile. Lesi yisibonelo lapho i-Moment ishubile kakhudlwana. Ubiza indlela yefomethi yento ngochungechunge lwamathokheni achaza ifomethi yedethi oyifunayo. const date = umzuzu();

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

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

Ngakolunye uhlangothi, i-Temporal idinga ukuthi ube ne-verbose kakhudlwana. Izinto zesikhashana, njenge-Instant, zinendlela ye-toLocaleString eyamukela izinketho ezihlukahlukene zokufometha ezicaciswe njengezici zento.

const date = Temporal.Now.instant();

// ngaphandle kokuphikisana, sizothola ifomethi ezenzakalelayo yendawo yamanje console.log(date.toLocaleString()); // 2/22/2026, 8:23:36 PM (kuthatha indawo yase-en-US)

// dlula izinketho zokufometha ukuze ukhiqize iyunithi yezinhlamvu yefomethi yangokwezifiso console.log(date.toLocaleString('zu-US', { inyanga: 'inde', usuku: 'izinombolo', unyaka: 'izinombolo', ihora: 'amadijithi angu-2', iminithi: 'amadijithi angu-2' })); // Februwari 22, 2026 ngo-8:23 PM

// dlula kuphela izinkambu ozifunayo kuyunithi yezinhlamvu yefomethi console.log(date.toLocaleString('zu-US', { inyanga: 'ifushane', usuku: 'izinombolo' })); // Feb 22

Ukufometha kwedethi yesikhashana empeleni kusebenzisa i-Intl.DateTimeFormat API (esivele itholakala kalula kuziphequluli zesimanje) ngaphansi kwehood. Lokho kusho ukuthi ungakha into ye-DateTimeFormat esebenziseka kabusha ngezinketho zakho zokufometha ngokwezifiso, bese udlulisela izinto zesikhashana endleleni yazo yokufometha. Ngenxa yalokhu, ayisekeli amafomethi wedethi yangokwezifiso njengoba kwenza i-Moment. Uma udinga okuthile okufana ne-'Q1 2026' noma okunye ukufometha okukhethekile, ungase udinge ikhodi yokufometha yedethi yangokwezifiso noma ufinyelele umtapo wolwazi wenkampani yangaphandle. const formatter = intl.DateTimeFormat entsha('zu-US', { inyanga: 'amadijithi angu-2', usuku: 'amadijithi angu-2', unyaka: 'izinombolo' });

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

Amathokheni okufometha esikhashana kulula ukuwabhala, kodwa awahambisani nendawo. Ifomethi yeyunithi yezinhlamvu "ikhodi eqinile" izinto ezifana ne-oda lenyanga/losuku. Inzuzo yokusebenzisa into yokumisa, njengoba kwenza i-Temporal, ukuthi izozivumelanisa ngokuzenzakalelayo nanoma iyiphi indawo futhi isebenzise ifomethi elungile. const date = Temporal.Now.instant();

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

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

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

Izibalo zedethi Ezinhlelweni eziningi, uzodinga ukuthi ugcine wenze izibalo ezithile ngosuku. Ungase ufune ukwengeza noma ukususa amayunithi esikhathi (izinsuku, amahora, amasekhondi, njll.). Isibonelo, uma unedethi yamanje, ungase ufune ukubonisa umsebenzisi idethi eyiviki elingu-1 kusukela manje. Izinto zesikhashana zinezindlela ezifana nokwengeza nokususa ezenza le misebenzi. Le misebenzi ithatha inani kanye neyunithi, isibonelo: engeza(7, 'izinsuku'). Umehluko owodwa obaluleke kakhulu phakathi kwe-Moment and Temporal, nokho, ukuthi lapho wenza lezi zibalo zedethi, into eyisisekelo iyashintshwa futhi inani layo langempela liyalahleka. const now = moment();

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

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

// Gotcha - into yokuqala yaguqulwa console.log(manje); // Isikhathi<2026-03-03T20:08:36-05:00>

Ukuze ugweme ukulahlekelwa idethi yokuqala, ungashayela i-clone entweni ye-Moment ukuze udale ikhophi. const manje= umzuzu(); const nextWeek = now.clone().add(7, 'izinsuku');

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

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

Ngakolunye uhlangothi, izinto zesikhashana aziguquleki. Uma usudale into efana ne-Instant, PlainDate, njalo njalo, inani laleyo nto ngeke lishintshe. Izinto zesikhashana nazo zinezindlela zokungeza nokukhipha. I-Temporal iwukukhetha okuncane mayelana nokuthi iziphi amayunithi esikhathi angengezwa kuzo izinhlobo zezinto. Isibonelo, awukwazi ukungeza izinsuku Kokushesha:

const manje = Temporal.Now.instant(); const nextWeek = now.add({ izinsuku: 7}); // I-RangeError: Iphutha lesikhashana: Iyunithi enkulu kakhulu ayikwazi ukuba iyunithi yedethi

Lokhu kungenxa yokuthi izinto ezisheshayo zimelela iphuzu elithile ngesikhathi ku-UTC futhi azikho ikhalenda. Ngenxa yokuthi ubude bosuku bungashintsha ngokusekelwe emithethweni yendawo yesikhathi efana ne-Daylight Saving Time, lesi sibalo asitholakali Ngokuphazima kweso. Nokho, ungenza lo msebenzi kwezinye izinhlobo zezinto, njenge-PlainDateTime: const manje = Temporal.Now.plainDateTimeISO(); console.log(now.toLocaleString()); // 2/24/2026, 8:23:59 PM

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

// Qaphela ukuthi i-PlainDateTime yasekuqaleni ihlala ingashintshile console.log(now.toLocaleString()); // 2/24/2026, 8:23:59 PM

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

Ungakwazi futhi ukubala ukuthi singakanani isikhathi phakathi kwezinto ezimbili Zomzuzwana noma Zesikhashana. Ngomsebenzi we-Moment's diff, udinga ukuhlinzeka ngeyunithi yembudumbudu, ngaphandle kwalokho izobuyisela umehluko ngama-millisecond. 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, 'days')); // 1

Ukwenza lokhu ngento Yesikhashana, ungadlulisela enye into Yesikhashana kuze kube yilapho noma kusukela ezindleleni. Lokhu kubuyisela into Yesikhashana.Isikhathi esiqukethe ulwazi mayelana nomehluko wesikhathi. Into yobude besikhathi inezici zengxenye ngayinye yomehluko, futhi ingakhiqiza iyunithi yezinhlamvu yobude be-ISO 8601 emelela umehluko wesikhathi.

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

// largestUnit icacisa iyunithi enkulu yesikhathi okumele imele // esibalweni sobude besikhathi 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 ubude beyunithi yezinhlamvu: usuku olu-1, ihora eli-1, imizuzu engama-30)

Ukuqhathanisa Izinsuku Nezikhathi Isikhathi kanye Nesikhashana kokubili kukuvumela ukuthi uqhathanise amadethi nezikhathi ukuze unqume ukuthi yikuphi okuza ngaphambi kwesinye, kodwa uthathe izindlela ezihlukile nge-API. I-Moment inikeza izindlela ezifana ne-isBefore, isAfter, ne-isSame ukuqhathanisa izinto ezimbili ze-Moment. const date1 = moment('2026-02-21T09:00:00'); const date2 = moment('2026-02-22T10:30:00');

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

I-Temporal isebenzisa indlela yokuqhathanisa emile ukwenza ukuqhathanisa phakathi kwezinto ezimbili zohlobo olufanayo. Ibuyisela -1 uma idethi yokuqala iza ngaphambi kowesibili, 0 uma zilingana, noma 1 uma idethi yokuqala iza ngemva kwesibili. Isibonelo esilandelayo sibonisa indlela yokuqhathanisa izinto ezimbili ze-PlainDate. Womabili ama-agumenti kokuthi Temporal.PlainDate.compare kumelwe kube izinto ze-PlainDate.

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

// idethi1 iza ngaphambi kosuku2, ngakho -1 console.log(Temporal.PlainDate.compare(date1, date2));

// Iphutha uma sizama ukuqhathanisa izinto ezimbili zezinhlobo ezahlukene console.log(Temporal.PlainDate.compare(date1, Temporal.Now.instant())); // Iphutha lohlobo: Iphutha lesikhashana: Izinkambu ezingavumelekile ze-PlainDate zinikeziwe.

Ikakhulukazi, lokhu kwenza kube lula ukuhlunga izinto eziningi zesikhashana ngokulandelana kwazo. // Uhlu lwezinto Zesikhashana.PlainDate const dates = [ ... ];

// sebenzisa i-Temporal.PlainDate.compare njengomsebenzi wokuqhathanisa dates.sort(Temporal.PlainDate.compare);

Ukuguqulwa Kwendawo Yesikhathi Ilabhulali ye-Moment eyinhloko ayisekeli ukuguqulwa kwendawo yesikhathi. Uma udinga lokhu kusebenza, udinga futhi ukufaka iphakheji yezoni yesikhathi. Le phakheji ayinakunyakaziswa esihlahleni, ngakho-ke ingangeza kakhulu kusayizi wakho wenqwaba. Uma usuyifakile izoni yesikhathi, ungakwazi ukuguqula izinto ze-Moment zibe izindawo zesikhathi ezihlukene ngendlela ye-tz. Njengeminye imisebenzi ye-Moment, lokhu kushintsha okungaphansiinto. // Sithatha isikhathi sase-US saseMpumalanga const now = moment(); console.log(manje); // Isikhathi<2026-02-28T20:08:20-05:00>

// Guqula isikhathi sase-Pacific. // Isikhathi sokuqala saseMpumalanga silahlekile. now.tz('America/Los_Angeles'); console.log(manje); // Isikhathi<2026-02-28T17:08:20-08:00>

Ukusebenza kwendawo yesikhathi yakhelwe ku-Temporal API uma usebenzisa into ye-Temporal.ZonedDateTime. Lezi zinto zihlanganisa indlela ye- withTimeZone ebuyisela i-ZonedDateTime entsha emelela isikhathi esifanayo ngesikhathi, kodwa endaweni yesikhathi eshiwo. // Futhi, sithatha isikhathi sase-US saseMpumalanga const manje = Temporal.Now.zonedDateTimeISO(); console.log(now.toLocaleString()); // 2/28/2026, 8:12:02 PM EST

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

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

Qaphela: Amanani afomethiwe abuyiswe yi-toLocaleString, njengoba negama lisho, ancike endaweni. Ikhodi yesampula yakhiwe endaweni ye-en-US, ngakho ifomethi ifana nalena: 2/28/2026, 5:12:02 PM PST. Kwesinye indawo, lokhu kungase kwehluke. Isibonelo, endaweni ye-en-GB, uzothola okuthile okufana no-28/2/2026, 17:12:02 GMT-8. I-Refactoring Yomhlaba Wangempela Ake sithi sakha uhlelo lokusebenza lokuhlela imicimbi kuzo zonke izindawo zesikhathi. Ingxenye yalolu hlelo lokusebenza iwumsebenzi, i-getEventTimes, ethatha iyunithi yezinhlamvu ye-ISO 8601 emele isikhathi nosuku lomcimbi, indawo yesikhathi yendawo, kanye nendawo yesikhathi eqondiwe. Umsebenzi udala iyunithi yezinhlamvu zesikhathi nedethi ezifomethiwe zomcimbi kuzo zombili izindawo zesikhathi. Uma umsebenzi unikezwa iyunithi yezinhlamvu yokokufaka okungeyona iyunithi yezinhlamvu zesikhathi/idethi evumelekile, izophonsa iphutha. Nakhu ukuqaliswa koqobo, kusetshenziswa i-Moment (edinga futhi ukusetshenziswa kwephakheji yezoni yesikhathi).

ngenisa isikhathi kusuka 'kuzoni yesikhathi';

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

// 1. Dala isikhathi sokuqala endaweni yesikhathi yomsebenzisi const eventTime = moment.tz( inputString, moment.ISO_8601, // Lindela iyunithi yezinhlamvu ye-ISO 8601 iqiniso, // Ukuhlaziya okuqinile userTimeZone );

// Phonsa iphutha uma i-inputString ingameleli usuku oluvumelekile uma (!eventTime.isValid()) { phonsa Iphutha elisha('Idethi engavumelekile/ukufaka isikhathi'); }

// 2. Bala isikhathi okuhlosiwe // OKUBALULEKILE: Kufanele sihlanganise, noma 'isikhathi somcimbi' sishintshe unomphela! const targetTime = eventTime.clone().tz(targetTimeZone);

buyela { okwasendaweni: eventTime.format(timeFormat), okuhlosiwe: targetTime.format(timeFormat), }; }

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

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

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

Kulesi sibonelo, sisebenzisa ifomethi yedethi elindelwe ye-ISO 8601, eyakhelwe ngosizo ku-Moment. Futhi sisebenzisa ukuhlaziya okuqinile, okusho ukuthi Isikhathi ngeke sizame ukuqagela ngochungechunge lwedethi olungahambisani nefomethi. Uma kuphasiswa iyunithi yezinhlamvu yedethi engeyona eye-ISO, izoholela entweni yedethi engavumelekile, futhi senza iphutha. Ukuqaliswa Kwesikhashana kubukeka kufana, kodwa kunomehluko obalulekile ambalwa.

umsebenzi getEventTimes(inputString, userTimeZone, targetTimeZone) { // 1. Hlaziya okokufaka ngokuqondile ku-Instant, bese udala // i-ZonedDateTime endaweni yomsebenzisi. const instant = Temporal.Instant.from(inputString); const eventTime = instant.toZonedDateTimeISO(userTimeZone);

// 2. Guqulela endaweni eqondiwe // Lokhu kubuyisela ngokuzenzakalelayo into ENTSHA; 'I-eventTime' iphephile. const targetTime = eventTime.withTimeZone(targetTimeZone);

// 3. Fometha usebenzisa i-Intl (eyakhelwe ngaphakathi) const ongakhetha = { unyaka: 'izinombolo', inyanga: 'ifushane', usuku: 'izinombolo', ihora: 'izinombolo', iminithi: 'amadijithi angu-2', okwesibili: 'amadijithi angu-2', TimeZoneName: 'short' };

buya { okwasendaweni: eventTime.toLocaleString(navigator.language, options), target: targetTime.toLocaleString(navigator.language, options) }; }

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

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

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

Nge-Moment, kufanele sicacise ngokusobala iyunithi yezinhlamvu yefomethi yeyunithi yezinhlamvu zedethi ewumphumela. Kungakhathalekile indawo yomsebenzisi noma indawo, izikhathi zomcimbi zizohlala zifomethiwe njengoMashi 5, 2026, 3:00:00pm EST. Futhi, akufanele senze okuhlukile ngokusobala. Uma iyunithi yezinhlamvu engavumelekile idluliselwa ku-Temporal.Instant.from, i-Temporal izophonsa okuhlukile kithi. Into eyodwa okufanele uyiqaphele ukuthi noma ngabe kuhlukaniswa okuqinile, inguqulo ye-Moment isathambile. Okwesikhashana kudinga ukumiswa kwendawo ekupheleni kweyunithi yezinhlamvu. Kufanele futhi uqaphele ukuthi njengoba sisebenzisa i-navigator.language, le khodi izosebenza kuphela endaweni yesiphequluli, njengoba i-navigator ingachazwanga endaweni ye-Node.js. Ukusetshenziswa Kwesikhashana kusebenzisa indawo yamanje yesiphequluli (navigator.language), ukuze umsebenzisi athole ngokuzenzakalelayo izikhathi zomcimbi zifomethwe ngefomethi yesikhathi sasendaweni. Endaweni yase-en-US, lokhu ngoMashi 5, 2026, 3:00:00 pm EST. Nokho, uma umsebenzisi ese-London, isibonelo, izikhathi zomcimbi zizofomethwa njenge-5 Mar 2026, 15:00:00 GMT-5. Isifinyezo

Isenzo I-Moment.js Okwesikhashana Isikhathi samanje umzuzu() Temporal.Now.zonedDateTimeISO() Ukuhlaziya i-ISO umzuzu(str) Temporal.Instant.from(str) Engeza isikhathi .engeza(7, 'izinsuku') (iyashintsha) .engeza({ izinsuku: 7 }) (into entsha) Umehluko .diff(okunye, 'amahora') .kusukela(amanye).amahora Indawo yesikhathi .tz('Indawo/Igama') .withTimeZone('Zone/Name')

Uma uthi nhlá, umehluko ungase uhluke kancane (futhi endabeni ye-Temporal, ngezinye izikhathi i-verbose eyengeziwe futhi eqinile kakhulu) i-syntax, kodwa kunezinzuzo ezimbalwa ezibalulekile zokusebenzisa i-Temporal over Moment.js:

Ukubekela obala kusho izimanga ezimbalwa neziphazamisi ezingahlosiwe. Isikhathi singase sibonakale sithambile, kodwa sihlanganisa "ukuqagela," okungase ngezinye izikhathi kubangele izinsuku ezingalungile. Uma unikeza i-Temporal okuthile okungavumelekile, kwenza iphutha. Uma ikhodi isebenza, uyazi ukuthi unedethi evumelekile. Isikhathi singangeza usayizi obalulekile kunqwaba yohlelo lokusebenza, ikakhulukazi uma usebenzisa iphakheji yezoni yesikhathi. I-Temporal ayingezi lutho (uma isithunyelwe kuziphequluli zakho eziqondiwe). Ukungaguquki kukunikeza ithemba lokuthi awusoze walahlekelwa noma ubhale phezu kwedatha lapho wenza ukuguqulwa kwedethi nokusebenza. Izethulo ezihlukene zesikhathi (Instant, PlainDateTime, ZonedDateTime) kuye ngezimfuneko zakho, lapho i-Moment ihlale iyisonga isitembu sesikhathi se-UTC. I-Temporal isebenzisa i-Intl APIs ukufometha kwedethi, okusho ukuthi ungaba nokufometha kokwazi kwendawo ngaphandle kokuthi ucacise amathokheni ngokucacile.

Amanothi Ku-Polyfill Njengoba kushiwo ngaphambili, kukhona i-Temporal polyfill etholakalayo, esatshalaliswa njengephakheji ye-npm ebizwa ngokuthi @js-temporal/polyfill. Uma ufuna ukusebenzisa i-Temporal namuhla, uzodinga le-polyfill ukuze usekele iziphequluli ezifana ne-Safari ezingakathumeli i-API kuze kube manje. Izindaba ezimbi ngalokhu ukuthi kuzongeza kusayizi wakho wenqwaba. Izindaba ezinhle ukuthi isengeza kancane kakhulu kunomzuzu noma indawo yesikhathi. Nasi isiqhathaniso sosayizi benqwaba njengoba kubikwe i-Bundlephobia.com, iwebhusayithi eyethula ulwazi ngosayizi wamaphakheji we-npm (chofoza igama lephakheji ngalinye ukuze ubone ukuhlaziywa kwe-Bundlephobia):

Iphakheji I-minified I-minified & gzipped @js-temporal/polyfill 154.1 kB 44.1 kB umzuzu 294.4 kB 75.4 kB indawo yesikhathi 1 MB 114.2 kB

I-polyfill nayo ngokomlando ibe nezinkinga ezithile zokusebenza mayelana nokusetshenziswa kwenkumbulo, futhi ngesikhathi sokubhala, ithathwa njengesesimweni se-alpha. Ngenxa yalokhu, ungase ungafuni ukuyisebenzisela ukukhiqiza ize ifinyelele esimweni esivuthiwe. Ezinye izindaba ezinhle ukuthi ngethemba ukuthi i-polyfill ngeke idingeke isikhathi eside (ngaphandle uma udinga ukusekela iziphequluli ezindala, kunjalo). Ngesikhathi sokubhala, i-Temporal ithunyelwe nge-Chrome, Edge, kanye neFirefox. Ayikakalungi kahle ku-Safari okwamanje, nakuba ibonakala itholakala ngefulegi lesikhathi sokusebenza ekuhloleni kuqala kobuchwepheshe kwakamuva.

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