Pafupifupi pulogalamu iliyonse yolembedwa mu JavaScript imagwira ntchito ndi nthawi kapena masiku mwanjira ina. Pachiyambi, izi zinali zochepa pa Date API yomangidwa. API iyi imaphatikizapo magwiridwe antchito, koma ndizochepa pazomwe ingachite. Malaibulale a chipani chachitatu monga Moment.js, ndi ma API omangidwa pambuyo pake monga Intl APIs ndi Temporal API yatsopano, amawonjezera kusinthasintha kwakukulu pakugwira ntchito ndi nthawi ndi masiku. Kukwera ndi Kugwa Kwakanthawi.js Moment.js ndi laibulale ya JavaScript yokhala ndi zida zamphamvu zogwirira ntchito ndi nthawi ndi masiku. Zimaphatikizapo zomwe zikusowa kuchokera ku API ya Date API, monga kusintha kwa nthawi, ndipo zimapangitsa kuti ntchito zambiri zizikhala zosavuta. Moment imaphatikizanso ntchito zopanga madeti ndi nthawi. Inakhala laibulale yogwiritsidwa ntchito kwambiri m'mapulogalamu osiyanasiyana. Komabe, Moment inalinso ndi zovuta zake. Ndi laibulale yayikulu, ndipo imatha kuwonjezera kukula kwa mtolo wa pulogalamuyo. Chifukwa laibulale samathandizira kugwedezeka kwamitengo (chinthu chazomangamanga zamakono zomwe zimatha kuchotsa magawo osagwiritsidwa ntchito a malaibulale), laibulale yonse ya Moment imaphatikizidwa ngakhale mutagwiritsa ntchito imodzi kapena ziwiri zokha. Nkhani ina ndi Moment ndikuti zinthu zomwe imapanga zimatha kusintha. Kuitana ntchito zina pa chinthu cha Moment kumakhala ndi zotsatira zake ndipo kumasintha mtengo wa chinthucho. Izi zitha kuyambitsa machitidwe osayembekezeka kapena zolakwika. Mu 2020, osamalira a Moment adaganiza zoyika laibulaleyi kuti ikhale yokonza. Palibe kusintha kwatsopano komwe kukuchitika, ndipo osamalira amalimbikitsa kuti asagwiritsidwe ntchito pama projekiti atsopano. Palinso malaibulale ena a JavaScript, monga date-fns, koma pali wosewera watsopano mtawuniyi, API yomangidwa mwachindunji mu JavaScript: Temporal. Ndi mulingo watsopano womwe umadzaza mabowo a Date API yoyambirira komanso kuthetsa zina mwazoletsa zomwe zimapezeka mu Moment ndi malaibulale ena. Kodi Temporal N'chiyani? Temporal ndi nthawi yatsopano ndi tsiku API yomwe ikuwonjezedwa ku muyezo wa ECMAScript, womwe umatanthawuza JavaScript yamakono. Kuyambira pa Marichi 20266, yafika pa Gawo 4 la ndondomeko ya TC39 (komiti yomwe imayang'anira malingaliro ndi zowonjezera ku JavaScript), ndipo idzaphatikizidwa mumtundu wotsatira wa ndondomeko ya ECMAScript. Zakhazikitsidwa kale m'masakatuli angapo: Chrome 144+ ndi Firefox 139+, ndipo Safari ikuyembekezeka kutsatira posachedwa. Polyfill imapezekanso pamasakatuli osagwiritsidwa ntchito ndi Node.js. Temporal API imapanga zinthu zomwe, nthawi zambiri, zimayimira mphindi mu nthawi. Izi zitha kukhala masitampu anthawi zonse komanso nthawi muzoni yanthawi yomwe mwapatsidwa, kapena zitha kukhala zochitika zanthawi zonse za "nthawi yapakhoma" popanda zone yanthawi kapena zambiri zamasiku. Zina mwazinthu zazikulu za Temporal ndi izi:

Nthawi yokhala ndi masiku kapena opanda masiku.Chinthu Chakanthawi chimatha kuyimira nthawi yeniyeni pa deti linalake, kapena nthawi yopanda zidziwitso zatsiku lililonse. Tsiku lenileni, lopanda nthawi, lingathenso kuimiridwa. Thandizo la zone ya nthawi.Zinthu zokhalitsa zimadziwa nthawi zonse ndipo zimatha kusinthidwa kudutsa nthawi zosiyanasiyana. Moment imathandizira magawo anthawi, nawonso, koma imafunikira laibulale yowonjezera yanthawi yanthawi. Kusasunthika.Chinthu cha Temporal chikapangidwa, sichingasinthidwe. Masamu a nthawi kapena zone ya nthawi sizisintha chinthu chomwe chili pansi. M'malo mwake, amapanga chinthu chatsopano cha Temporal. 1-based indexing.Magwero ambiri a nsikidzi ndi Date API (komanso ndi Moment) ndikuti miyezi imakhala ndi ziro. Izi zikutanthauza kuti Januware ndi mwezi 0, osati mwezi wa 1 monga tonse timamvetsetsa m'moyo weniweni. Izi zimakonza izi pogwiritsa ntchito 1-based indexing - Januware ndi mwezi 1. Imamangidwa mu msakatuli.Popeza Temporal ndi API mu msakatuli wokha, sichimawonjezera chilichonse pakukula kwa mtolo wa pulogalamu yanu.

Ndikofunikiranso kuzindikira kuti Date API sikuchoka. Ngakhale Temporal imaposa API iyi, sikuchotsedwa kapena kuchotsedwa ntchito. Mapulogalamu ambiri amatha kusweka ngati asakatuli achotsa mwadzidzidzi Date API. Komabe, kumbukiraninso kuti Moment tsopano imatengedwa ngati pulojekiti yokhazikika pakukonza. M'nkhani yotsalayo, tiwona "maphikidwe" ena osunthira ma code Moment-based kupita ku Temporal API yatsopano. Tiyeni tiyambe kukonzanso! Kupanga Zinthu Za Tsiku Ndi Nthawi Tisanayambe kusintha madeti ndi nthawi, tiyenera kupanga zinthu zowaimira. Kuti mupange chinthu cha Moment chomwe chikuyimira tsiku ndi nthawi, gwiritsani ntchito mphindi. const now = mphindi(); console.log(tsopano); // Moment<2026-02-18T21:26:29-05:00>

Chinthuchi tsopano chikhoza kusinthidwa kapena kusinthidwa momwe chikufunikira.

// sinthani kukhala UTC //chenjezo: Izi zimasintha chinthu cha Moment ndikuchiyika mu UTC mode! console.log(now.utc()); // Moment<2026-02-19T02:26:29Z>

// sindikizani chingwe chojambulidwa - dziwani kuti ikugwiritsa ntchito nthawi ya UTC tsopano console.log(now.format('MM/DD/YYYY hh:mm:ss a')); // 02/19/2026 02:27:07 am

Chinthu chofunikira kukumbukira pa Mphindi ndikuti chinthu cha Moment nthawi zonse chimaphatikizapo zambiri zokhudza nthawi ndi tsiku. Ngati mumangofunika kugwira ntchito ndi chidziwitso cha nthawi, izi nthawi zambiri zimakhala zabwino, koma zingayambitse khalidwe losayembekezereka muzochitika monga Nthawi Yopulumutsa Masana kapena zaka zodumphadumpha, kumene tsikulo likhoza kukhala ndi zotsatira pa kuwerengera nthawi. Temporal imasinthasintha. Mutha kupanga chinthu chomwe chikuyimira tsiku ndi nthawi yomwe ilipo popanga chinthu cha Temporal.Instant. Izi zikuyimira nthawi yofotokozedwa ndi nthawi kuyambira "nthawi" (pakati pausiku UTC pa Januware 1, 1970). Temporal imatha kutchula nthawi yomweyo munthawi yake ndikulondola kwa nanosecond. const tsopano = Temporal.Now.instant ();

// onani nanoseconds yaiwisi kuyambira nthawiyo console.log(now.epochNanoseconds); // 1771466342612000000n

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

// mtundu wa nthawi inayake console.log(now.toString({timeZone:'America/New_York'})); // 2026-02-18T20:56:57.905-05:00

Temporal.Instant zinthu zitha kupangidwanso pa nthawi ndi tsiku linalake pogwiritsa ntchito njira ya from static.

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

// Konzani nthawi yomweyo muzoni yanthawi yakomweko. Dziwani kuti izi zimangowongolera // kupanga - sikusintha chinthu ngati moment.utc. console.log(myInstant.toString({timeZone:'America/New_York'})); // 2026-02-18T21:10:00-05:00

Mutha kupanganso mitundu ina ya zinthu Zanthawi, kuphatikiza:

Temporal.PlainDate: Tsiku lopanda zambiri za nthawi. Temporal.PlainTime: Nthawi yopanda zambiri zatsiku. Temporal.ZonedDateTime: Tsiku ndi nthawi mu zoni ya nthawi inayake.

Iliyonse mwa izi ili ndi njira yomwe ingatchulidwe ndi chinthu chofotokozera tsiku ndi / kapena nthawi, kapena chingwe cha deti kuti chidule. // Tsiku chabe const lero = Temporal.PlainDate.from({ chaka: 2026, mwezi: 2, // zindikirani kuti tikugwiritsa ntchito 2 mu February tsiku: 18 }); console.log(today.toString()); // 2026-02-18

// Kanthawi const lunchTime = Temporal.PlainTime.from({ nthawi: 12 }); console.log(lunchTime.toString()); // 12:00:00

// Tsiku ndi nthawi mu nthawi ya US Eastern time const dueAt = Temporal.ZonedDateTime.from({ nthawi: 'America/New_York', chaka: 2026, mwezi: 3, tsiku: 1, ora: 12, miniti: 0, chiwiri: 0 }); console.log(dueAt.toString()); // 2026-03-01T12:00:00-05:00[Amerika/New_York]

Kusanthula Takambirana za kupanga kwadongosolo kwa tsiku ndi nthawi. Tsopano tiyeni tiyang'ane pa kugawa. Parsing ndi gawo limodzi pomwe Moment imakhala yosinthika kwambiri kuposa Temporal API yomangidwa. Mutha kulunzanitsa chingwe cha deti pochipereka ku ntchito yanthawi. Ndi mkangano umodzi, Moment ikuyembekeza chingwe cha tsiku la ISO, koma mutha kugwiritsa ntchito mawonekedwe ena ngati mupereka mtsutso wachiwiri wonena za tsiku lomwe likugwiritsidwa ntchito.

const isoDate = mphindi('2026-02-21T09:00:00'); const formattedDate = mphindi('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>

M'matembenuzidwe akale, Moment amatha kulingalira bwino kuti adutse zingwe zilizonse zosinthidwa mosasamala. Izi zitha kubweretsa zotsatira zosayembekezereka. Mwachitsanzo, ndi 02-03-2026 February 2 kapena March 3? Pazifukwa izi, mitundu yatsopano ya Moment imawonetsa chenjezo lodziwikiratu ngati litayitanidwa popanda chingwe chamtundu wa ISO (pokhapokha ngati mkangano wachiwiri wokhala ndi mtundu womwe mukufuna utaperekedwanso). Temporal ingotchula chingwe cha deti lopangidwa mwapadera. Chingwechi chiyenera kugwirizana ndi mtundu wa ISO 8601 kapena kukulitsa kwake, RFC 9557. Ngati chingwe cha deti chosagwirizana chipititsidwa ku njira, Temporal idzaponya RangeError.

// Kugwiritsa ntchito chingwe cha tsiku la 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

// Kugwiritsa ntchito chingwe chosadziwika const otherDate = Temporal.Instant.from('2/21/26 9:00:00'); // RangeError: Zolakwika kwakanthawi: Chikhalidwe chosavomerezeka podula mtengo wa chaka.

Zofunikira zenizeni za chingwe cha deti zimatengera mtundu wa chinthu cha Temporal chomwe mukupanga. Mu chitsanzo pamwambapa, Temporal.Instant imafuna ISO yathunthu8601 kapena RFC 9557 zingwe zofotokoza tsiku ndi nthawi yokhala ndi nthawi yosinthira, koma mutha kupanganso zinthu za PlainDate kapena PlainTime pogwiritsa ntchito kagawo kakang'ono kamtundu wamasikuwo. 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

Zindikirani kuti zingwezi ziyenera kutsatirabe mtundu womwe ukuyembekezeredwa, kapena cholakwika chidzatayika.

// Kugwiritsa ntchito zingwe zosagwirizana ndi nthawi. Izi zonse zidzaponya RangeError. Temporal.PlainTime.from('9:00'); Temporal.PlainTime.from('9:00:00 AM');

Upangiri wa Pro: Kugwira zingwe zomwe si za ISOChifukwa chakuti Temporal imayika patsogolo kudalirika, siyesa kulingalira mtundu wa chingwe ngati 02-01-2026. Ngati gwero lanu la data likugwiritsa ntchito zingwe zotere, muyenera kusintha zingwe kuti mukonzenso zingwezo kukhala chingwe cha ISO ngati 2026-02-01 musanayese kugwiritsa ntchito ndi Temporal.

Kukonza Mukakhala ndi chinthu cha Moment kapena Temporal, mungafune kuchisintha kukhala chingwe chojambulidwa nthawi ina. Iyi ndi nthawi yomwe Moment imakhala yocheperako. Mumatcha njira yamtundu wa chinthucho ndi zizindikiro zingapo zomwe zimafotokoza mtundu womwe mukufuna. tsiku lokhazikika = mphindi ();

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

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

Kumbali inayi, Temporal imafuna kuti mumve zambiri. Zinthu zosakhalitsa, monga Instant, zili ndi njira ya toLocaleString yomwe imavomereza zosankha zosiyanasiyana zosankhidwa monga katundu wa chinthu.

const date = Temporal.Now.instant ();

// popanda mikangano, tipeza mtundu wokhazikika wamalo apano console.log(date.toLocaleString()); // 2/22/2026, 8:23:36 PM (kutengera dera la en-US)

// pass formatting options kuti mupange chingwe chamtundu wamtundu console.log(date.toLocaleString('en-US', { mwezi: 'kutalika', tsiku: 'manambala', chaka: 'numeric', ola: '2 manambala', mphindi: '2-manambala' })); // February 22, 2026 pa 8:23 PM

// ingodutsani minda yomwe mukufuna mumtundu wa chingwe console.log(date.toLocaleString('en-US', { mwezi: 'wamfupi', tsiku: 'numeric' })); // Feb 22

Kusintha kwa masiku osakhalitsa kumagwiritsa ntchito Intl.DateTimeFormat API (yomwe ikupezeka kale m'masakatuli amakono) pansi pa hood. Izi zikutanthauza kuti mutha kupanga chinthu chogwirikanso cha DateTimeFormat ndi zosankha zanu zamasanjidwe, kenaka perekani zinthu za Temporal kunjira yake. Chifukwa cha ichi, sichigwirizana ndi mawonekedwe amasiku monga Moment amachitira. Ngati mukufuna zina monga 'Q1 2026' kapena masanjidwe ena apadera, mungafunike kachidindo kamtundu wamasiku kapena kufikira laibulale ya gulu lina. const formatter = new Intl.DateTimeFormat('en-US', { mwezi: '2 manambala', tsiku: '2 manambala', chaka: 'numeric' });

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

Zizindikiro zamapangidwe a Moment ndizosavuta kulemba, koma sizogwirizana ndi komweko. Mtunduwu umakhala ndi "hard code" zinthu monga mwezi/tsiku. Ubwino wogwiritsa ntchito chinthu chosinthira, monga momwe Temporal amachitira, ndikuti imangosinthira kudera lililonse ndikugwiritsira ntchito mawonekedwe olondola. const date = Temporal.Now.instant ();

const formatOptions = { mwezi: 'numeric', tsiku: 'manambala', chaka: 'numeric' };

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

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

Kuwerengera tsiku M'mapulogalamu ambiri, muyenera kumaliza kuwerengera patsiku. Mungafune kuwonjezera kapena kuchotsa magawo a nthawi (masiku, maola, masekondi, ndi zina zotero). Mwachitsanzo, ngati muli ndi tsiku lomwe lilipo, mungafune kuwonetsa wogwiritsa ntchito sabata imodzi kuchokera pano. Zinthu za mphindi zili ndi njira monga kuwonjezera ndi kuchotsa zomwe zimachita izi. Ntchitozi zimatengera mtengo ndi gawo, mwachitsanzo: add(7, 'masiku'). Kusiyanitsa kumodzi kofunikira kwambiri pakati pa Moment ndi Temporal, komabe, ndikuti pochita mawerengedwe amasiku awa, chinthu chomwe chili pansi chimasinthidwa ndipo mtengo wake woyambirira umatayika. const now = mphindi();

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

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

// Gotcha - chinthu choyambirira chidasinthidwa console.log(tsopano); // Moment<2026-03-03T20:08:36-05:00>

Kuti mupewe kutaya tsiku loyambirira, mutha kuyimba foni ya Clone pa chinthu cha Moment kuti mupange kopi. const tsopano= mphindi (); const nextWeek = now.clone().add (7, 'masiku');

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

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

Kumbali inayi, zinthu za Temporal sizisintha. Mukangopanga chinthu ngati Instant, PlainDate, ndi zina zotero, mtengo wa chinthucho sudzasintha. Zinthu zosakhalitsa zimakhalanso ndi njira zowonjezera ndi zochotsera. Temporal ndi kusankha pang'ono kuti mayunitsi a nthawi angawonjezedwe kuti ndi mitundu yanji. Mwachitsanzo, simungathe kuwonjezera masiku ku Instant:

const tsopano = Temporal.Now.instant (); const nextWeek = now.add({masiku: 7}); // RangeError: Zolakwika kwakanthawi: Gawo lalikulu kwambiri silingakhale tsiku

Izi ndichifukwa choti zinthu za Instant zimayimira nthawi yeniyeni mu UTC ndipo ndi kalendala-agnostic. Chifukwa utali wa tsiku ukhoza kusintha malinga ndi malamulo a nthawi yanthawi monga Nthawi Yopulumutsa Masana, kuwerengetseraku sikukupezeka Pompopompo. Komabe, mutha kuchita izi pamitundu ina yazinthu, monga PlainDateTime: const now = Temporal.Now.plainDateTimeISO(); console.log(now.toLocaleString()); // 2/24/2026, 8:23:59 PM

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

// Dziwani kuti PlainDateTime yoyambirira sinasinthe console.log(now.toLocaleString()); // 2/24/2026, 8:23:59 PM

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

Muthanso kuwerengera kuchuluka kwa nthawi yomwe ili pakati pa zinthu ziwiri za Moment kapena Temporal. Ndi ntchito ya Moment's diff, muyenera kupereka gawo la granularity, apo ayi lidzabwezera kusiyana kwa ma milliseconds. const date1 = mphindi('2026-02-21T09:00:00'); const date2 = mphindi('2026-02-22T10:30:00');

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

console.log(date2.diff(deti1, 'masiku')); // 1

Kuti muchite izi ndi chinthu cha Temporal, mutha kudutsa chinthu china cha Temporal mpaka mpaka kapena kuyambira njira. Izi zimabweretsa chinthu cha Temporal.Duration chomwe chili ndi zambiri zakusiyana kwa nthawi. Chinthu cha Duration chili ndi katundu pagawo lililonse la kusiyana, komanso chitha kupanga chingwe chanthawi ya ISO 8601 choyimira kusiyana kwa nthawi.

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

// largestUnit imatchula gawo lalikulu kwambiri la nthawi yoti liyimire // mu kuwerengera kwa nthawi const diff = date2.since(deti1, {lambiriUnit: 'tsiku'});

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

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

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

console.log(diff.toString()); // P1DT1H30M // (Chingwe cha nthawi ya ISO 8601: tsiku limodzi, ola limodzi, mphindi 30)

Kufananiza Madeti Ndi Nthawi Moment ndi Temporal zonse zimakulolani kufananiza masiku ndi nthawi kuti mudziwe zomwe zimabwera patsogolo pa zina, koma tsatirani njira zosiyanasiyana ndi API. Moment imapereka njira monga isBefore, isAfter, ndi isSame kuyerekeza zinthu ziwiri za Moment. const date1 = mphindi('2026-02-21T09:00:00'); const date2 = mphindi('2026-02-22T10:30:00');

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

Temporal imagwiritsa ntchito njira yofananira yosasunthika kuti ifananize pakati pa zinthu ziwiri zamtundu womwewo. Imabwerera -1 ngati tsiku loyamba lisanafike lachiwiri, 0 ngati ali ofanana, kapena 1 ngati tsiku loyamba likubwera pambuyo pa lachiwiri. Chitsanzo chotsatirachi chikuwonetsa momwe mungafanizire zinthu ziwiri za PlainDate. Zotsutsana zonse za Temporal.PlainDate.compare ziyenera kukhala zinthu za PlainDate.

const date1 = Temporal.PlainDate.from({chaka: 2026, mwezi: 2, tsiku: 24}); const date2 = Temporal.PlainDate.from({chaka: 2026, mwezi: 3, tsiku: 24});

// deti1 limabwera tsiku lisanafike2, kotero -1 console.log(Temporal.PlainDate.compare(deti1, date2));

// Zolakwika ngati tiyesa kufananiza zinthu ziwiri zamitundu yosiyanasiyana console.log(Temporal.PlainDate.compare(date1, Temporal.Now.instant())); // TypeError: Zolakwika kwakanthawi: Magawo osalondola a PlainDate aperekedwa.

Makamaka, izi zimapangitsa kukhala kosavuta kusanja mndandanda wa zinthu Zakanthawi motsatira nthawi. // Mndandanda wa Zinthu Zosakhalitsa.PlainDate const dates = [...];

// gwiritsani ntchito Temporal.PlainDate.compare ngati ntchito yofananira dates.sort(Temporal.PlainDate.compare);

Kusintha kwa Nthawi Zone Laibulale yapakati ya Moment sichirikiza kusintha kwa nthawi. Ngati mukufuna izi, muyeneranso kukhazikitsa phukusi la nthawi-nthawi. Phukusili silingagwedezeke pamtengo, chifukwa chake likhoza kuwonjezera kwambiri kukula kwa mtolo wanu. Mukayika nthawi yanthawi, mutha kusintha zinthu za Moment kukhala magawo osiyanasiyana anthawi ndi njira ya tz. Mofanana ndi zochitika zina za Moment, izi zimasintha zomwe zili pansichinthu. // Kungotengera nthawi yaku US Eastern const now = mphindi(); console.log(tsopano); // Moment<2026-02-28T20:08:20-05:00>

// Sinthani kukhala nthawi ya Pacific. // Nthawi yoyambirira ya Kummawa yatayika. now.tz('America/Los_Angeles'); console.log(tsopano); // Moment<2026-02-28T17:08:20-08:00>

Ntchito zone nthawi zimamangidwa mu Temporal API mukamagwiritsa ntchito chinthu cha Temporal.ZonedDateTime. Zinthu izi zikuphatikiza njira ya withTimeZone yomwe imabwezeretsa ZonedDateTime yatsopano yoyimira nthawi yomweyo, koma muzoni yanthawi yodziwika. // Apanso, kutengera nthawi yaku US Eastern const now = Temporal.Now.zonedDateTimeISO(); console.log(now.toLocaleString()); // 2/28/2026, 8:12:02 PM EST

// Sinthani kukhala nthawi ya Pacific const nowPacific = now.withTimeZone('America/Los_Angeles'); console.log(nowPacific.toLocaleString()); // 2/28/2026, 5:12:02 PM PST

// Chinthu choyambirira sichinasinthe console.log(now.toLocaleString()); // 2/28/2026, 8:12:02 PM EST

Zindikirani: Makhalidwe omwe adabwezeredwa ndi toLocaleString ndi, monga momwe dzinalo likusonyezera, amadalira malo. Khodi yachitsanzo idapangidwa m'dera la en-US, kotero mawonekedwe ake ali motere: 2/28/2026, 5:12:02 PM PST. M'dera lina, izi zitha kukhala zosiyana. Mwachitsanzo, m'dera la en-GB, mutha kupeza zina ngati 28/2/2026, 17:12:02 GMT-8. A Real-world Refactoring Tiyerekeze kuti tikumanga pulogalamu yokonzekera zochitika nthawi zonse. Gawo lina la pulogalamuyi ndi ntchito, getEventTimes, yomwe imatenga chingwe cha ISO 8601 kuyimira nthawi ndi tsiku la chochitikacho, zone yanthawi yakomweko, ndi nthawi yomwe mukufuna. Ntchitoyi imapanga zingwe zanthawi ndi tsiku za chochitika m'magawo onse anthawi. Ngati ntchitoyi ipatsidwa chingwe cholowetsa chomwe sichiri nthawi / tsiku loyenera, chidzasokoneza. Nayi kukhazikitsa koyambirira, pogwiritsa ntchito Moment (ikufunanso kugwiritsa ntchito phukusi lanthawi yanthawi).

lowetsani mphindi kuchokera ku 'moment-timezone';

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

// 1. Pangani mphindi yoyamba mu nthawi ya wogwiritsa ntchito const eventTime = moment.tz( inputString, moment.ISO_8601, // Yembekezerani chingwe cha ISO 8601 zoona, // Kufotokozera mokhwima userTimeZone );

// Tayani cholakwika ngati inputString sinayimire tsiku lovomerezeka ngati (!eventTime.isValid()) { ponyani Vuto latsopano ('Tsiku losavomerezeka/kulowetsa nthawi'); }

// 2. Werengani nthawi yomwe mukufuna // ZOYENERA: Tiyenera kufananiza, kapena 'eventTime' imasintha mpaka kalekale! const targetTime = eventTime.clone().tz(targetTimeZone);

kubwerera { kwanuko: eventTime.format(timeFormat), chandamale: targetTime.format(timeFormat), }; }

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

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

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

Muchitsanzo ichi, tikugwiritsa ntchito mtundu wa ISO 8601 womwe ukuyembekezeredwa, womwe umapangidwa mothandiza mu Moment. Tikugwiritsanso ntchito kusanthula mosamalitsa, zomwe zikutanthauza kuti Moment siyesa kuyerekeza ndi chingwe cha deti chomwe sichikugwirizana ndi mtunduwo. Ngati chingwe cha deti losakhala la ISO chikadutsa, zipangitsa kuti tsiku likhale losavomerezeka, ndipo titaya cholakwika. Kukhazikitsa kwa Temporal kumawoneka kofanana, koma kuli ndi zosiyana zingapo.

ntchito getEventTimes(inputString, userTimeZone, targetTimeZone) { // 1. Sulani zolowetsazo mu Instant, kenako pangani // a ZonedDateTime m'malo ogwiritsa ntchito. const instant = Temporal.Instant.from(inputString); const eventTime = instant.toZonedDateTimeISO(userTimeZone);

// 2. Sinthani kukhala malo omwe mukufuna // Izi zimangobweza chinthu CHATSOPANO; 'EventTime' ndi yotetezeka. const targetTime = eventTime.withTimeZone(targetTimeZone);

// 3. Sinthani pogwiritsa ntchito Intl (yomangidwa) const options = { chaka: 'numeric', mwezi: 'wamfupi', tsiku: 'manambala', ola: 'manambala', mphindi: '2-manambala', chachiwiri: '2-manambala', timeZoneName: 'short' };

kubwerera { local: eventTime.toLocaleString(navigator.language, options), chandamale: targetTime.toLocaleString(navigator.language, options) }; }

const schedule = getEventTimes( '2026-03-05T15:00-05:00', 'America/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

Ndi Moment, tiyenera kufotokoza momveka bwino mtundu wa zingwe zomwe zatuluka. Mosasamala za komwe wogwiritsa ntchito ali kapena komweko, nthawi za chochitikacho nthawi zonse zizisinthidwa monga Mar 5, 2026, 3:00:00pm EST. Komanso, sitiyenera kutaya chosiyana. Ngati chingwe chosavomerezeka chaperekedwa ku Temporal.Instant.from, Temporal idzasiya ife. Chinthu chimodzi choyenera kudziwa ndikuti ngakhale mutayimitsa mosamalitsa, mtundu wa Moment umakhala wofewa. Temporal imafuna kusintha kwa nthawi kumapeto kwa chingwe. Muyeneranso kuzindikira kuti popeza tikugwiritsa ntchito navigator.language, code iyi idzangoyenda mu malo osatsegula, monga woyendetsa sitimayo sakufotokozedwa mu Node.js chilengedwe. Kukhazikitsa Kwakanthawi kumagwiritsa ntchito malo omwe asakatuli ali pano (navigator.language), kotero wogwiritsa ntchito azitha kupeza nthawi ya zochitika mosinthidwa malinga ndi nthawi yake. M'dera la en-US, izi ndi Mar 5, 2026, 3:00:00 pm EST. Komabe, ngati wogwiritsa ntchito ali ku London, mwachitsanzo, nthawi zazochitika zidzasinthidwa kukhala 5 Mar 2026, 15:00:00 GMT-5. Chidule

Zochita Moment.js Zanthawi Nthawi yapano mphindi () Temporal.Now.zonedDateTimeISO() Kusintha kwa ISO mphindi (str) Temporal.Instant.kuchokera(str) Onjezani nthawi .add (7, 'masiku') (amasintha) .add({masiku: 7}) (chinthu chatsopano) Kusiyana .diff(zina, 'maola') .kuyambira(zina).maola Zone ya nthawi .tz('Zone/Name') .withTimeZone('Zone/Name')

Poyang'ana koyamba, kusiyanako kungakhale kosiyana pang'ono (komanso pa Temporal, nthawi zina mawu omveka kwambiri komanso okhwima), koma pali maubwino angapo ogwiritsira ntchito Temporal over Moment.js:

Kufotokozera momveka bwino kumatanthauza zochepa zodabwitsa ndi nsikidzi zosakonzekera. Mphindi ingawoneke ngati yochepetsetsa, koma imaphatikizapo "zongopeka," zomwe nthawi zina zingayambitse madeti olakwika. Ngati mupatsa Temporal china chake chosavomerezeka, chimasokoneza. Ngati code ikugwira ntchito, mukudziwa kuti muli ndi tsiku lovomerezeka. Mphindi imatha kuwonjezera kukula kwakukulu pamtolo wa pulogalamuyo, makamaka ngati mukugwiritsa ntchito phukusi lanthawi yanthawi. Temporal sichimawonjezera chilichonse (chikangotumizidwa msakatuli wanu). Kusasinthika kumakupatsani chidaliro kuti simudzataya kapena kubweza data mukasintha tsiku ndi ntchito. Kuwonetserako kosiyanasiyana kwa nthawi (Instant, PlainDateTime, ZonedDateTime) kutengera zomwe mukufuna, pomwe Moment nthawi zonse imakhala chomata kuzungulira nthawi ya UTC. Temporal imagwiritsa ntchito ma Intl API popanga ma deti, zomwe zikutanthauza kuti mutha kukhala ndi masanjidwe odziwa zakwawo popanda kutchula zizindikiro.

Zolemba pa Polyfill Monga tanena kale, pali Temporal polyfill yomwe ilipo, yogawidwa ngati npm phukusi lotchedwa @js-temporal/polyfill. Ngati mukufuna kugwiritsa ntchito Temporal lero, mufunika polyfill iyi kuti muthandizire asakatuli ngati Safari omwe sanatumize API pano. Nkhani yoyipa ndi iyi ndikuti idzawonjezera kukula kwa mtolo wanu. Nkhani yabwino ndiyakuti imawonjezerabe zochepa kwambiri kuposa mphindi kapena nthawi yanthawi. Nayi kufananitsa kukula kwa mitolo monga idanenedwera ndi Bundlephobia.com, tsamba lomwe limapereka chidziwitso cha kukula kwa phukusi la npm (dinani pa dzina lililonse la phukusi kuti muwone kusanthula kwa Bundlephobia):

Phukusi Minified Minified & gzipped @js-temporal/polyfill 154.1 kB 44.1 kb mphindi 294.4 kB 75.4 kb mphindi-nthawi 1 MB 114.2 kB

Polyfill idakhalanso ndi zovuta m'mbiri yokhudzana ndi kugwiritsa ntchito kukumbukira, ndipo panthawi yolemba, imadziwika kuti inali mu alpha state. Chifukwa cha izi, simungafune kuzigwiritsa ntchito popanga mpaka zitafika pakukhwima. Nkhani ina yabwino ndiyakuti mwachiyembekezo kuti polyfill sidzafunikanso nthawi yayitali (pokhapokha ngati mukufunika kuthandizira asakatuli akale, inde). Panthawi yolemba, Temporal adatumiza mu Chrome, Edge, ndi Firefox. Sili yokonzeka ku Safari pano, ngakhale ikuwoneka kuti ikupezeka ndi mbendera ya nthawi yothamanga pa Zowonera Zamakono zaposachedwa.

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