Hoo e batlang e le mofuta ofe kapa ofe oa ts'ebeliso e ngotsoeng ho JavaScript e sebetsa le linako kapa matsatsi ka mokhoa o itseng. Qalong, sena se ne se lekanyelitsoe ho Date API e hahiloeng. API ena e kenyelletsa ts'ebetso ea mantlha, empa e na le moeli ho seo e ka se etsang. Lilaebrari tsa mekhatlo ea boraro tse kang Moment.js, le li-API tse hahiloeng hamorao tse kang Intl APIs le API e ncha ea Temporal, li eketsa phetoho e kholo ea ho sebetsa le linako le matsatsi. Ho phahama le ho oa ha Motsotsoana.js Moment.js ke laebrari ea JavaScript e nang le lisebelisoa tse matla tsa ho sebetsa ka linako le matsatsi. E kenyelletsa likarolo tse sieo ho tsoa ho Date API ea mantlha, joalo ka ho qhekella sebaka sa nako, 'me e nolofatsa lits'ebetso tse ngata tse tloaelehileng. Moment e boetse e kenyelletsa mesebetsi ea ho fometa matsatsi le linako. E ile ea fetoha laebrari e sebelisoang haholo mesebetsing e mengata e fapaneng. Leha ho le joalo, Moment le eona e ne e e-na le karolo ea eona ea mathata. Ke laebrari e kholo, 'me e ka eketsa boholo ba bongata ba sesebelisoa. Hobane laebrari ha e tšehetse ho sisinyeha ha lifate (e leng tšobotsi ea li-bundler tsa morao-rao tse ka tlosang likarolo tse sa sebelisoeng tsa lilaebrari), laebrari eohle ea Moment e kenyelelitsoe le haeba u sebelisa mosebetsi o le mong kapa tse peli feela tsa eona. Taba e 'ngoe ka Moment ke taba ea hore lintho tseo e li bōpang lia fetoha. Ho bitsa mesebetsi e itseng nthong ea Motsotsoana ho na le litla-morao 'me ho fetola boleng ba ntho eo. Sena se ka lebisa boitšoarong bo sa lebelloang kapa litšitšili. Ka 2020, bahlokomeli ba Moment ba nkile qeto ea ho beha laebrari molemong oa tlhokomelo. Ha ho nts'etsopele ea likarolo tse ncha tse ntseng li etsoa, 'me bahlokomeli ba khothaletsa ho se sebelisetsoe merero e mecha. Ho na le lilaebrari tse ling tsa matsatsi a JavaScript, joalo ka letsatsi-fns, empa ho na le sebapali se secha toropong, API e hahiloeng ka kotloloho ho JavaScript: Temporal. Ke tekanyetso e ncha e tlatsang masoba a Date API ea mantlha hammoho le ho rarolla tse ling tsa mefokolo e fumanoang ho Moment le lilaebraring tse ling. Ea Nako ke Eng? Temporal ke nako le letsatsi API e ntseng e eketsoa ho maemo a ECMAScript, a hlalosang JavaScript ea sejoale-joale. Ho tloha ka Hlakubele 20266, e fihlile Mothating oa 4 oa ts'ebetso ea TC39 (komiti e okametseng litlhahiso le litlatsetso ho puo ea JavaScript), mme e tla kenyeletsoa mofuteng o latelang oa litlhaloso tsa ECMAScript. E se e kentsoe tšebetsong libatli tse 'maloa: Chrome 144+ le Firefox 139+, mme Safari e lebelletsoe ho latela haufinyane. Polyfill e fumaneha hape bakeng sa libatli tse sa tšehetsoeng le Node.js. Temporal API e theha lintho tseo, ka kakaretso, li emelang nako ka nako. Tsena e ka ba litempe tsa nako eohle le tsa letsatsi sebakeng se itseng sa nako, kapa e ka ba mohlala oa nako ea "wall clock" ntle le sebaka sa nako kapa lintlha tsa letsatsi. Tse ling tsa likarolo tsa mantlha tsa Temporal li kenyelletsa:
Linako tse nang le matsatsi kapa tse se nang tsona.Ntho ea Nako e ka emela nako e itseng ka letsatsi le itseng, kapa nako e se nang lintlha tsa letsatsi. Letsatsi le itseng, ntle le nako, le lona le ka emeloa. Tšehetso ea sebaka sa nako. Lintho tsa nakoana li tseba sebaka sa nako ka botlalo 'me li ka fetoloa ho pholletsa le libaka tse fapaneng tsa nako. Moment le eona e ts'ehetsa libaka tsa nako, empa e hloka laeborari ea tlatsetso ea sebaka sa nako. Ho se fetohe Liphetoho tsa nako ea lipalo kapa sebaka sa nako ha li fetole ntho e ka tlase. Ho e-na le hoo, ba hlahisa ntho e ncha ea Temporal. 1-based indexing.Mohloli o tloaelehileng oa likokoana-hloko ka Date API (hammoho le Moment) ke hore likhoeli li na le zero-index. Sena se bolela hore January ke khoeli ea 0, ho e-na le khoeli ea 1 joalokaha bohle re utloisisa bophelong ba sebele. Nako e lokisa sena ka ho sebelisa indexing e thehiloeng ho 1 - Pherekhong ke khoeli ea 1. E hahiloe ka har'a sebatli.Kaha Temporal e le API ka har'a sebatli ka bosona, ha e kenye letho ho boholo ba bongata ba sesebelisoa sa hau.
Hape ke habohlokoa ho hlokomela hore Date API ha e tsamaee. Leha Temporal e nka sebaka sa API ena, ha e tlosoe kapa ha e hlakoloe. Lisebelisoa tse ngata li ne li tla robeha haeba libatli li ka tlosa Date API ka tšohanyetso. Leha ho le joalo, hopola hape hore Moment e se e nkuoa e le projeke ea lefa molemong oa tlhokomelo. Sengoliloeng se seng, re tla sheba "liphekolo" tse ling tsa ho fallisa khoutu e thehiloeng ho Moment ho ea ho Temporal API e ncha. Ha re qale ho etsa refactoring! Ho theha Lintho tsa Letsatsi le Nako Pele re ka fetola matsatsi le linako, re tlameha ho theha lintho tse emelang tsona. Ho theha ntho ea Moment e emelang letsatsi le nako ea hajoale, sebelisa ts'ebetso ea motsotso. const hona joale = motsotso(); console.log(hona joale); // Moment<2026-02-18T21:26:29-05:00>
Hona joale ntho ena e ka hlophisoa kapa ea sebelisoa ha ho hlokahala.
// fetolela ho UTC //temoso: Sena se fetola ntho ea Moment ebe e e beha ka mokhoa oa UTC! console.log(now.utc()); // Moment<2026-02-19T02:26:29Z>
// hatisa khoele e hlophisitsoeng - hlokomela hore e sebelisa nako ea UTC hona joale console.log(now.format('MM/DD/YYYY hh:mm:ss a')); // 02/19/2026 02:27:07 am
Ntho ea bohlokoa eo u lokelang ho e hopola ka Moment ke hore ntho ea Moment e lula e kenyelletsa tlhahisoleseling mabapi le nako le letsatsi. Haeba o hloka feela ho sebetsa ka tlhaiso-leseling ea nako, hangata sena se nepahetse, empa se ka baka boitšoaro bo sa lebelloang maemong a joalo ka Nako ea Saving Day kapa leap years, moo letsatsi le ka bang le phello lipalong tsa nako. Temporal e tenyetseha haholoanyane. O ka etsa ntho e emelang letsatsi le nako ya hajwale ka ho bopa ntho ya Temporal.Instant. Sena se emela ntlha ea nako e hlalosoang ke nako ho tloha "nako" (har'a mp'a bosiu UTC ka la 1 Pherekhong 1970). Temporal e ka bua hang hang ka nako ka ho nepahala ha boemo ba nanosecond. const hona joale = Temporal.Now.instant();
// bona nanoseconds e tala ho tloha nakong eo console.log(now.epochNanoseconds); // 1771466342612000000n
// sebopeho sa UTC console.log(now.toString()); // 2026-02-19T01:55:27.844Z
// sebopeho sa sebaka se itseng sa nako console.log(now.toString({timeZone: 'America/New_York' })); // 2026-02-18T20:56:57.905-05:00
Temporal.Lintho tsa hang-hang li ka boela tsa etsoa ka nako le letsatsi le itseng ka ho sebelisa mokhoa oa ho tloha static.
const myInstant = Temporal.Instant.from('2026-02-18T21:10:00-05:00');
// Beakanya hanghang sebakeng sa nako sa lehae. Hlokomela hore sena se laola feela // sebopeho - ha se fetole ntho joalo ka motsotsoana.utc e etsa joalo. console.log(myInstant.toString({timeZone: 'America/New_York'})); // 2026-02-18T21:10:00-05:00
U ka boela ua etsa mefuta e meng ea lintho tsa Nako, ho kenyelletsa:
Temporal.PlainDate: Letsatsi le se nang lintlha tsa nako. Temporal.PlainTime: Nako e se nang lintlha tsa letsatsi. Temporal.ZonedDateTime: Letsatsi le nako sebakeng se itseng sa nako.
E 'ngoe le e 'ngoe ea tsena e na le mokhoa o ka bitsoang ka ntho e hlalosang letsatsi le/kapa nako, kapa khoele ea letsatsi e lokelang ho hlalosoa. // Letsatsi feela const today = Temporal.PlainDate.ho tloha({ selemo: 2026, khoeli: 2, // hlokomela hore re sebelisa 2 bakeng sa Hlakola letsatsi: 18 }); console.log(kajeno.toString()); // 2026-02-18
// Nakonyana feela const lunchTime = Temporal.PlainTime.ho tloha({ hora: 12 }); console.log(lunchTime.toString()); // 12:00:00
// Letsatsi le nako sebakeng sa nako sa Amerika Botjhabela const dueAt = Temporal.ZonedDateTime.from({ Nako: 'Amerika/New_York', selemo: 2026, khoeli: 3, letsatsi: 1, hora: 12, motsotso: 0, ea bobeli: 0 }); console.log(dueAt.toString()); // 2026-03-01T12:00:00-05:00[Amerika/New_York]
Ho hlalosa Re fane ka tlhaiso-leseling ea nako le letsatsi mabapi le tlhahiso ea lenaneo. Joale ha re shebeng tlhaloso. Parsing ke sebaka se le seng moo Moment e fetohang habonolo ho feta API ea Temporal e hahiloeng. U ka hlophisa khoele ea letsatsi ka ho e fetisetsa tšebetsong ea motsotso. Ka khang e le 'ngoe, Moment e lebelletse khoele ea letsatsi la ISO, empa u ka sebelisa mefuta e meng haeba u fana ka khang ea bobeli e hlalosang mokhoa oa letsatsi o sebelisoang.
const isoDate = motsotso('2026-02-21T09:00:00'); const formattedDate = motsotso('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>
Liphetolelong tsa khale, Moment e ne e tla etsa khakanyo e ntle ka ho fetisisa ea ho fetisa mohala ofe kapa ofe oa letsatsi o hlophisitsoeng. Sena se ka lebisa liphellong tse sa lebelloang. Mohlala, na 02-03-2026 Hlakola 2 kapa la 3 Hlakubele? Ka lebaka lena, mefuta e mecha ea Moment e bonts'a temoso e hlahelletseng ea ho lahla ha e bitsoa ntle le khoele ea letsatsi e hlophisitsoeng ea ISO (ntle le haeba ho fanoe ka khang ea bobeli e nang le sebopeho se lakatsehang). Temporal e tla hlalosa feela mohala o hlophisitsoeng ka ho khetheha. Khoele e tlameha ho ikamahanya le sebopeho sa ISO 8601 kapa katoloso ea eona, RFC 9557. Haeba khoele ea letsatsi e sa lumellaneng le melaoana e fetisetsoa ho tloha ho mokhoa, Temporal e tla lahlela RangeError.
// Ho sebelisa mohala oa letsatsi oa RFC 9557 const myDate = Temporal.Instant.from('2026-02-21T09:00:00-05:00[Amerika/New_York]'); console.log(myDate.toString({timeZone: 'America/New_York'})); // 2026-02-21T09:00:00-05:00
// Ho sebedisa kgwele ya letsatsi e sa tsejoeng const otherDate = Temporal.Instant.from('2/21/26 9:00:00'); // RangeError: Phoso ea nakoana: Sebapali se sa sebetseng ha ho bapisoa boleng ba selemo.
Litlhoko tse nepahetseng tsa mohala oa letsatsi li ipapisitse le hore na u theha mofuta oa ntho ea Temporal. Mohlala o ka holimo, Temporal.Instant e hloka ISO e felletseng8601 kapa RFC 9557 e hlalosang letsatsi le nako e nang le sebaka sa nako, empa u ka boela ua etsa lintho tsa PlainDate kapa PlainTime u sebelisa sehlopha se senyenyane sa sebopeho sa letsatsi. 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
Hlokomela hore likhoele tsena li ntse li tlameha ho latela mokhoa o lebelletsoeng, ho seng joalo ho tla ba le phoso.
// Ho sebedisa nako e sa dumellaneng le maemo. Tsena kaofela li tla lahlela RangeError. Nako.Nako e Hlakang.ho tloha('9:00'); Nako.PlainTime.ho tloha('9:00:00 AM');
Pro tip: Ho sebetsana le likhoele tseo e seng tsa ISOHobane Nako ea Nako e etelletsa ho ts'epahala, e ke ke ea leka ho hakanya sebopeho sa khoele joalo ka 02-01-2026. Haeba mohloli oa data oa hau o sebelisa likhoele tse joalo, o tla hloka ho etsa thapo e itseng ho hlophisa boleng bocha ka khoele ea ISO joalo ka 2026-02-01 pele o leka ho e sebelisa ka Temporal.
Ho fomata Hang ha u se u e-na le ntho ea Nako kapa Nako, mohlomong u tla batla ho e fetolela khoele e hlophisitsoeng ka nako e itseng. Ena ke mohlala moo Moment e batlang e le khutso ho feta. U bitsa mokhoa oa sebopeho sa ntho ka letoto la li-tokens tse hlalosang mofuta oa letsatsi o lakatsehang. const date = motsotso();
console.log(date.format('MM/DD/YYYY')); // 02/22/2026
console.log(date.format('MMMM Etsa YYYY, h:mm:ss a')); // Hlakola 22nd 2026, 8:18:30 pm
Ka lehlakoreng le leng, Temporal e hloka hore u be lentsoe le itseng haholoanyane. Lintho tsa nakoana, joalo ka Instant, li na le mokhoa oa toLocaleString o amohelang likhetho tse fapaneng tsa ho fometa tse boletsoeng joalo ka thepa ea ntho.
const date = Temporal.Now.instant();
// ntle le likhang, re tla fumana sebopeho sa kamehla sa sebaka sa hajoale console.log(date.toLocaleString()); // 2/22/2026, 8:23:36 PM (ho nka sebaka sa en-US)
// fetisa likhetho tsa ho fomata ho hlahisa khoele ea sebopeho sa tloaelo console.log(date.toLocaleString('en-US', { khoeli: 'bolelele', letsatsi: 'nomoro', selemo: 'numeric', hora: '2-digit', motsotso: '2-digit' })); // Hlakola 22, 2026 ka 8:23 PM
// fetisa feela masimo ao u a batlang ka khoele ea sebopeho console.log(date.toLocaleString('en-US', { khoeli: 'khutšoane', letsatsi: 'nomoro' })); // Hlakola 22
Ho fometa ha matsatsi a nakoana ha e le hantle ho sebelisa Intl.DateTimeFormat API (e seng e fumaneha habonolo libukeng tsa sejoale-joale) tlas'a hood. Seo se bolela hore o ka etsa ntho e ka sebelisoang hape ea DateTimeFormat ka likhetho tsa hau tsa ho fometa, ebe o fetisetsa lintho tsa Temporal mokhoeng oa eona oa sebopeho. Ka lebaka lena, ha e tšehetse lifomate tsa matsatsi a tloaelo joalo ka Moment. Haeba u hloka ntho e kang 'Q1 2026' kapa mokhoa o mong o khethehileng oa ho fometa, u ka 'na ua hloka khoutu e itseng ea ho fometa letsatsi kapa u fihlelle laeborari ea batho ba bang. const formatter = intl.DateTimeFormat e ncha('en-US', { khoeli: '2-digit', letsatsi: '2-digit', selemo: 'numeric' });
const date = Temporal.Now.instant(); console.log(formatter.format(letsatsi)); // 02/22/2026
Li-tokens tsa sebopeho sa Moment li bonolo ho li ngola, empa ha li na botsoalle sebakeng seo. Sebopeho se thaepa "khoutu e thata" joalo ka taelo ea khoeli/letsatsi. Molemo oa ho sebelisa ntho ea tlhophiso, joalo ka ha Temporal e etsa, ke hore e tla ikamahanya le sebaka leha e le sefe se fanoeng ebe e sebelisa sebopeho se nepahetseng. const date = Temporal.Now.instant();
const formatOptions = { khoeli: 'numeric', letsatsi: 'nomoro', selemo: 'numeric' };
console.log(date.toLocaleString('en-US', formatOptions)); // 2/22/2026
console.log(date.toLocaleString('en-GB', formatOptions)); // 22/02/2026
Lipalo tsa letsatsi Likopong tse ngata, u tla hloka ho qetella u etsa lipalo ka letsatsi. U ka 'na ua batla ho eketsa kapa ho fokotsa likarolo tsa nako (matsatsi, lihora, metsotsoana, joalo-joalo). Mohlala, haeba u na le letsatsi la hajoale, u kanna ua batla ho bonts'a mosebelisi letsatsi la beke e 1 ho tloha hajoale. Lintho tsa Motsotsoana li na le mekhoa e kang ho eketsa le ho tlosa tse etsang ts'ebetso ena. Mesebetsi ena e nka boleng le yuniti, mohlala: eketsa(7, 'matsatsi'). Phapang e 'ngoe ea bohlokoa haholo lipakeng tsa Moment le Temporal, leha ho le joalo, ke hore ha ho etsoa lipalo tsena tsa letsatsi, ntho e ka tlase e ea fetoloa mme boleng ba eona ba mantlha boa lahleha. const hona joale = motsotso();
console.log(hona joale); // Moment<2026-02-24T20:08:36-05:00>
const nextWeek = hona joale.add(7, 'matsatsi'); console.log(Beke e tlang); // Moment<2026-03-03T20:08:36-05:00>
// Gotcha - ntho ya pele e fetotswe console.log(hona joale); // Moment<2026-03-03T20:08:36-05:00>
Ho qoba ho lahleheloa ke letsatsi la mantlha, o ka letsetsa clone ho ntho ea Moment ho etsa kopi. const hona joale= motsotso(); const nextWeek = hona joale.clone().add(7, 'matsatsi');
console.log(hona joale); // Moment<2026-02-24T20:12:55-05:00>
console.log(Beke e tlang); // Moment<2026-03-03T20:12:55-05:00>
Ka lehlakoreng le leng, lintho tsa Temporal ha li fetohe. Hang ha u se u thehile ntho e kang Instant, PlainDate, joalo-joalo, boleng ba ntho eo bo ke ke ba fetoha. Lintho tsa nakoana li boetse li na le mekhoa ea ho eketsa le ho tlosa. Temporal ke khetho e nyane mabapi le hore na liyuniti tsa nako li ka eketsoa ho mefuta efe ea ntho. Ka mohlala, u ke ke ua eketsa matsatsi ho Hanghang:
const hona joale = Temporal.Now.instant(); const nextWeek = now.add({matsatsi: 7}); // RangeError: Phoso ea nakoana: Yuniti e kholo ka ho fetisisa e ke ke ea ba yuniti ea letsatsi
Lebaka ke hobane lintho tsa Instant li emela ntlha e itseng ka nako ho UTC mme ke almanaka-agnostic. Hobane bolelele ba letsatsi bo ka fetoha ho ipapisitsoe le melao ea sebaka sa nako joalo ka Nako ea Saving Day, lipalo tsena ha li fumanehe Hanghang. Leha ho le joalo, o ka etsa ts'ebetso ena mefuteng e meng ea lintho, joalo ka PlainDateTime: const hona joale = Temporal.Now.plainDateTimeISO(); console.log(now.toLocaleString()); // 2/24/2026, 8:23:59 PM
const nextWeek = now.add({matsatsi: 7});
// Hlokomela hore PlainDateTime ea mantlha e lula e sa fetohe console.log(now.toLocaleString()); // 2/24/2026, 8:23:59 PM
console.log(nextWeek.toLocaleString()); // 3/3/2026, 8:23:59 PM
U ka boela ua bala hore na ke nako e kae pakeng tsa lintho tse peli tsa Motsotsoana kapa tsa Nako. Ka ts'ebetso ea Moment's diff, o hloka ho fana ka yuniti bakeng sa granularity, ho seng joalo e tla khutlisa phapang ho milliseconds. const date1 = motsotso('2026-02-21T09:00:00'); const date2 = motsotso('2026-02-22T10:30:00');
console.log(date2.diff(date1)); // 91800000
console.log(date2.diff(letsatsi1, 'matsatsi')); // 1
Ho etsa sena ka ntho ea Nako, o ka fetisa ntho e 'ngoe ea Nako ho fihlela kapa ho tloha ka mekhoa. Sena se khutlisa ntho ea Nako.Nako e nang le lintlha tse mabapi le phapang ea nako. Ntho ea Nako e na le thepa bakeng sa karolo ka 'ngoe ea phapang, hape e ka hlahisa khoele ea nako ea ISO 8601 e emelang phapang ea nako.
const date1 = Temporal.PlainDateTime.from('2026-02-21T09:00:00'); const date2 = Temporal.PlainDateTime.from('2026-02-22T10:30:00');
// largestUnit e bolela nako e kholo ka ho fetisisa ea ho emela // ka palo ya nako const diff = date2.ho tloha(letsatsi1, {latsi le leholo ka ho fetisisa: 'letsatsi'});
console.log(diff.matsatsi); // 1
console.log(diff.hora); // 1
console.log(diff.metsotso); // 30
console.log(diff.toString()); // P1DT1H30M // (ISO 8601 khoele ea nako: letsatsi le 1, hora e le 1, metsotso e 30)
Ho Bapisa Matsatsi le Linako Nako le Nako ka bobeli li u lumella ho bapisa matsatsi le linako ho fumana hore na ke life tse tlang pele ho tse ling, empa u nke mekhoa e fapaneng le API. Moment e fana ka mekhoa e kang isBefore, isAfter, le isSame ho bapisa lintho tse peli tsa Moment. const date1 = motsotso('2026-02-21T09:00:00'); const date2 = motsotso('2026-02-22T10:30:00');
console.log(date1.isBefore(date2)); // nnete
Temporal e sebelisa mokhoa oa ho bapisa o tsitsitseng ho etsa papiso pakeng tsa lintho tse peli tsa mofuta o le mong. E khutla -1 haeba letsatsi la pele le tla pele ho la bobeli, 0 haeba li lekana, kapa 1 haeba letsatsi la pele le tla ka mor'a la bobeli. Mohlala o latelang o bontša mokhoa oa ho bapisa lintho tse peli tsa PlainDate. Likhang ka bobeli ho Temporal.PlainDate.compare e tlameha ho ba lintho tsa PlainDate.
const date1 = Temporal.PlainDate.from({selemo: 2026, khoeli: 2, letsatsi: 24}); const date2 = Temporal.PlainDate.from({selemo: 2026, khoeli: 3, letsatsi: 24});
// letsatsi1 le tla pele ho letsatsi2, kahoo -1 console.log(Temporal.PlainDate.compare(letsatsi1, letsatsi2));
// Phoso ha re leka ho bapisa dintho tse pedi tsa mefuta e fapaneng console.log(Temporal.PlainDate.compare(date1, Temporal.Now.instant())); // TypeError: Phoso ea nakoana: Ho fanoe ka likarolo tse sa sebetseng tsa PlainDate.
Haholo-holo, sena se etsa hore ho be bonolo ho hlophisa lintho tse ngata tsa Nako ka tatellano ea liketsahalo. // Letoto la dintho tsa Nako.PlainDate things const dates = [...];
// sebelisa Temporal.PlainDate.bapisa e le mosebetsi oa ho bapisa matsatsi.hlopha(Temporal.PlainDate.compare);
Liphetoho tsa Nako ea Nako Laeborari ea mantlha ea Moment ha e tšehetse liphetoho tsa libaka tsa nako. Haeba o hloka ts'ebetso ena, o boetse o hloka ho kenya sephutheloana sa nako-timezone. Sephutheloana sena ha se tsukutlehe sefateng, ka hona se ka eketsa boholo ba bongata ba hau. Ha u se u kentse nako-timezone, u ka fetolela lintho tsa Moment libakeng tse fapaneng tsa nako ka mokhoa oa tz. Joalo ka lits'ebetso tse ling tsa Moment, sena se fetola se ka tlasentho. // Ho nka nako ea US Bochabela const hona joale = motsotso(); console.log(hona joale); // Moment<2026-02-28T20:08:20-05:00>
// Fetolela ho nako ea Pacific. // Nako ya pele ya Botjhabela e lahlehile. now.tz('America/Los_Angeles'); console.log(hona joale); // Moment<2026-02-28T17:08:20-08:00>
Ts'ebetso ea sebaka sa nako e hahiloe ho Temporal API ha ho sebelisoa ntho ea Temporal.ZonedDateTime. Lintho tsena li kenyelletsa mokhoa oa withTimeZone o khutlisang ZonedDateTime e ncha e emelang nako e ts'oanang ka nako, empa sebakeng se boletsoeng. // Hape, ho nka nako ea US Bochabela const hona joale = Temporal.Now.zonedDateTimeISO(); console.log(now.toLocaleString()); // 2/28/2026, 8:12:02 PM EST
// Fetolela ho nako ea Pacific const nowPacific = now.withTimeZone('America/Los_Angeles'); console.log(nowPacific.toLocaleString()); // 2/28/2026, 5:12:02 PM PST
// Ntho ya pele e dula e sa fetohe console.log(now.toLocaleString()); // 2/28/2026, 8:12:02 PM EST
Tlhokomeliso: Lipalo tse hlophisitsoeng tse khutlisitsoeng ke toLocaleString, joalo ka ha lebitso le bolela, li itšetlehile ka sebaka. Mohlala oa khoutu o entsoe sebakeng sa en-US, kahoo sebopeho se tjena: 2/28/2026, 5:12:02 PM PST. Sebakeng se seng, sena se ka fapana. Mohlala, sebakeng sa en-GB, u ka fumana ntho e kang 28/2/2026, 17:12:02 GMT-8. Refactoring ea 'Nete ea Lefatše Ha re re re theha sesebelisoa bakeng sa ho hlophisa liketsahalo ho pholletsa le libaka. Karolo ea sesebelisoa sena ke ts'ebetso, getEventTimes, e nkang khoele ea ISO 8601 e emelang nako le letsatsi la ketsahalo, sebaka sa sebaka sa sebaka, le sebaka seo ho shebiloeng ho sona. Ts'ebetso e theha likhoele tsa nako le letsatsi tse hlophisitsoeng bakeng sa ketsahalo libakeng tseo ka bobeli tsa nako. Haeba ts'ebetso e fuoa khoele e kentsoeng e seng nako / letsatsi le nepahetseng, e tla etsa phoso. Mona ke ts'ebetsong ea mantlha, ho sebelisoa Moment (hape e hloka ts'ebeliso ea sephutheloana sa nako ea nako).
tlisa motsotso ho tsoa ho 'moment-timezone';
sebetsa getEventTimes(inputString, userTimeZone, targetTimeZone) { const timeFormat = 'MMM D, YYYY, h:mm:ss a z';
// 1. Etsa nako ea pele sebakeng sa nako ea mosebedisi const eventTime = moment.tz( inputString, motsotso.ISO_8601, // Lebella khoele ea ISO 8601 nete, // Boetsuwa bo thata userTimeZone );
// Lahlela phoso haeba inputString e sa emela letsatsi le nepahetseng haeba (!eventTime.isValid()) { lahlela Phoso e ncha ('Letsatsi le sa sebetseng / kenyeletso ea nako'); }
// 2. Bala nako eo ho shebilweng ka yona // BOHLOKOA: Re tlameha ho etsisa, kapa 'eventTime' e fetohe ka ho sa feleng! const targetTime = eventTime.clone().tz(targetTimeZone);
khutla { sebakeng sa heno: eventTime.format(timeFormat), sepheo: targetTime.format(timeFormat), }; }
const schedule = getEventTimes( '2026-03-05T15:00-05:00', 'Amerika/New_York', 'Europe/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
Mohlaleng ona, re sebelisa sebopeho sa letsatsi se lebelletsoeng sa ISO 8601, se hahiloeng ho Moment. Re boetse re sebelisa papiso e thata, ho bolelang hore Nako e ke ke ea leka ho hakanya ka khoele ea letsatsi e sa lumellaneng le sebopeho. Haeba thapo e seng ea ISO e fetisitsoe, e tla fella ka ntho e sa sebetseng, 'me re etsa phoso. Ts'ebetsong ea Nako e shebahala e tšoana, empa e na le liphapang tse 'maloa tsa bohlokoa.
sebetsa getEventTimes(inputString, userTimeZone, targetTimeZone) { // 1. Arola se kentsweng ka kotloloho ho Hanghang, ebe o theha // a ZonedDateTime sebakeng sa mosebelisi. const instant = Temporal.Instant.from(inputString); const eventTime = instant.toZonedDateTimeISO(userTimeZone);
// 2. Fetolela sebakeng se lebisitsoeng // Sena se khutlisa ntho e NCHA; 'EventTime' e bolokehile. const targetTime = eventTime.withTimeZone(targetTimeZone);
// 3. Fometa ka ho sebelisa Intl (e hahelletsoeng) likhetho tsa const = { selemo: 'numeric', khoeli: 'khutšoane', letsatsi: 'nomoro', hora: 'nomoro', motsotso: '2-digit', ea bobeli: '2-digit', timeZoneName: 'short' };
khutla { sebakeng sa heno: eventTime.toLocaleString(navigator.language, options), target: targetTime.toLocaleString(navigator.language, dikgetho) }; }
const schedule = getEventTimes( '2026-03-05T15:00-05:00', 'Amerika/New_York', 'Europe/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
Ka Moment, re tlameha ho hlalosa ka ho hlaka mofuta oa likhoele tsa letsatsi. Ho sa tsotelehe sebaka sa mosebelisi kapa sebaka sa hae, linako tsa ketsahalo li tla lula li hlophisoa joalo ka Mar 5, 2026, 3:00:00pm EST. Hape, ha rea lokela ho lahla mokhelo ka mokhoa o hlakileng. Haeba khoele e sa sebetseng e fetisetsoa ho Temporal.Instant.from, Temporal e tla re fa mokhelo. Ntho e 'ngoe eo u lokelang ho e ela hloko ke hore le ha ho fetisoa ka thata, mofuta oa Moment o ntse o le bonolo haholoanyane. Nako e hloka "timezone offset" qetellong ea khoele. U lokela hape ho hlokomela hore kaha re sebelisa navigator.language, khoutu ena e tla sebetsa feela sebakeng sa sebatli, kaha motsamai ha a hlalosoe tikolohong ea Node.js. Ts'ebetso ea Nako e sebelisa sebaka sa hajoale sa sebatli (navigator.language), kahoo mosebelisi o tla fumana linako tsa liketsahalo li hlophisoa ka sebopeho sa nako ea lehae. Sebakeng sa en-US, sena ke Mar 5, 2026, 3:00:00 pm EST. Leha ho le joalo, haeba mosebelisi a le London, mohlala, linako tsa liketsahalo li tla hlophisoa joalo ka 5 Mar 2026, 15:00:00 GMT-5. Kakaretso
Ketso Moment.js Ea nakoana Nako ea joale motsotso() Temporal.Now.zonedDateTimeISO() Ho hlophisoa ha ISO motsotso(str) Nako.Ho tloha hang.ho tloha(str) Eketsa nako .add(7, 'matsatsi') (fetoha) .eketsa({matsatsi: 7 }) (ntho e ncha) Phapang .diff(tse ling, 'lihora') .ho tloha(tse ling).hora Sebaka sa nako .tz('Zone/Name') .withTimeZone('Zone/Name')
Ha u sheba ka lekhetlo la pele, phapang e ka 'na ea fapana hanyenyane ('me tabeng ea Temporal, ka linako tse ling mantsoe a verbose le a thata haholoanyane), empa ho na le melemo e mengata ea bohlokoa ea ho sebelisa Temporal over Moment.js:
Ho bua pepenene ho bolela lintho tse makatsang tse fokolang le liphoso tse sa lebelloang. Nako e ka 'na ea bonahala e le bonolo, empa e kenyelletsa "kakaretso," eo ka linako tse ling e ka fellang ka matsatsi a fosahetseng. Haeba u fa Temporal ntho e sa sebetseng, e baka phoso. Haeba khoutu e sebetsa, ua tseba hore u na le letsatsi le nepahetseng. Nako e ka eketsa boholo bo boholo ho bongata ba sesebelisoa, haholo haeba u sebelisa sephutheloana sa nako ea nako. Temporal ha e kenye letho (hang ha e se e rometsoe ka har'a libatli tseo u li batlang). Ho se feto-fetohe ho u fa kholiseho ea hore u ke ke ua lahleheloa kapa ua hlakola data ha u fetola letsatsi le ts'ebetso. Litlhahiso tse fapaneng tsa nako (Instant, PlainDateTime, ZonedDateTime) ho latela litlhoko tsa hau, moo Moment e lulang e le sekoaelo sa nako ea UTC. Temporal e sebelisa Intl APIs bakeng sa ho fomata letsatsi, ho bolelang hore o ka khona ho ba le mokhoa oa ho tseba sebaka ntle le ho hlakisa li-tokens.
Lintlha ka Polyfill Joalokaha ho boletsoe pejana, ho na le Temporal polyfill e fumanehang, e ajoang joalo ka sephutheloana sa npm se bitsoang @js-temporal/polyfill. Haeba u batla ho sebelisa Temporal kajeno, u tla hloka polyfill ena ho ts'ehetsa libatli tse joalo ka Safari tse so kang li romella API. Litaba tse mpe ka sena ke hore e tla eketsa boholo ba hau ba bongata. Litaba tse monate ke hore e ntse e eketsa ka tlase haholo ho feta motsotso kapa sebaka sa nako. Mona ke papiso ea boholo ba liphutheloana joalo ka ha ho tlalehiloe ke Bundlephobia.com, webosaete e fanang ka tlhaiso-leseling ka boholo ba liphutheloana tsa npm (tobetsa lebitsong le leng le le leng la sephutheloana ho bona tlhahlobo ea Bundlephobia):
Sephutheloana Minified Minified & gzipped @js-temporal/polyfill 154.1 kB 44.1 kB motsotsoana 294.4 kB 75.4 kB sebaka-nako 1 MB 114.2 kB
Polyfill le eona esale e na le mathata a ts'ebetso mabapi le ts'ebeliso ea memori, mme ka nako ea ho ngola, e nkuoa e le sebakeng sa alpha. Ka lebaka la sena, u ka 'na ua se ke ua batla ho e sebelisa tlhahiso ho fihlela e fihla boemong ba ho hōla ho feta. Litaba tse ling tse monate ke hore ka tšepo polyfill e ke ke ea hlokahala nako e telele (ntle le haeba o hloka ho ts'ehetsa libatli tsa khale, ehlile). Ka nako ea ho ngola, Temporal e rometse ho Chrome, Edge le Firefox. Ha e so lokisoe ho Safari hajoale, leha e bonahala e fumaneha ka folakha ea nako ea ho sebetsa ho Tlhahlobo ea morao-rao ea Theknoloji.