Tata ki nga momo tono ka tuhia ki te JavaScript ka mahi me nga waa me nga ra i etahi wa. I te timatanga, he iti noa tenei ki te API Ra i hangaia. Kei roto i tenei API nga mahi taketake, engari he iti noa nga mea ka taea e ia. Ko nga whare pukapuka tuatoru penei i a Moment.js, me nga API kua hangaia i muri mai penei i te Intl API me te API Takiwa hou, ka nui ake te ngawari ki te mahi me nga waa me nga ra. Te Maranga Me Te Hinga O Te Moment.js Ko Moment.js he whare pukapuka JavaScript me nga taputapu kaha mo te mahi me nga waa me nga ra. Kei roto ko nga ahuatanga ngaro mai i te API Raatake, penei i te raweke rohe wa, ka ngawari ake te maha o nga mahi noa. Kei roto hoki i te Moment nga mahi mo te whakahōputu i nga ra me nga waa. Ka noho hei whare pukapuka e whakamahia nuitia ana i roto i nga momo tono maha. Heoi ano, i whai waahi ano a Moment ki nga take. He whare pukapuka nui, ka taea te taapiri atu ki te rahi o te paihere o te tono. Na te mea karekau te whare pukapuka e tautoko i te ruirui rakau (he ahua o nga paihere hou ka taea te tango i nga waahanga o nga whare pukapuka kaore i whakamahia), ka whakauruhia te whare pukapuka Moment katoa ahakoa ka whakamahi koe i tetahi, e rua ranei o ana mahi. Ko tetahi atu take e pa ana ki a Moment ko te mea he rerekee nga taonga ka mahia e ia. Ko te karanga i etahi mahi i runga i te ahanoa Moment ka whai paanga taha ka huri i te uara o taua mea. Ka taea e tenei te arahi ki te whanonga ohorere, ki nga ngarara ranei. I te tau 2020, ka whakatauhia e nga kaitiaki o Moment ki te whakauru i te whare pukapuka ki te aratau tiaki. Karekau he whanaketanga waahanga hou e mahia ana, a ka kii nga kai tiaki kia kaua e whakamahia mo nga kaupapa hou. He atu whare pukapuka ra JavaScript, penei i te ra-fns, engari he kaitoro hou kei te taone nui, he API i hanga tika ki te JavaScript: Taimi. He paerewa hou e whakakii ana i nga kohao o te API Ra tuatahi me te whakaoti i etahi o nga here ka kitea i Moment me etahi atu whare pukapuka. He aha te rangi? Ko te rangitahi he wa hou me te ra API ka taapirihia ki te paerewa ECMAScript, e whakaatu ana i te JavaScript hou. Mai i te Maehe 20266, kua tae ki te Waahanga 4 o te tukanga TC39 (te komiti e whakahaere ana i nga tono me nga taapiri ki te reo JavaScript), ka whakauruhia ki roto i te waahanga e whai ake nei o te tuhinga ECMAScript. Kua whakatinanahia i roto i te maha o nga kaitirotiro: Chrome 144+ me Firefox 139+, me te tumanako ka whai ake a Safari. Kei te waatea ano he polyfill mo nga kaitirotiro kore tautoko me te Node.js. Ka hangaia e te Temporal API nga taonga e tohu ana i nga waa o te waa. Ka taea e enei he tohu wa-katoa me te ra i roto i tetahi rohe waahi, ka taea ranei he tauira mo te wa "karaka pakitara" kaore he rohe wa, korero ra ranei. Ko etahi o nga ahuatanga matua o te Temporal ko:
Nga wa me nga ra kore ranei. Ka taea e tetahi mea rangitahi te whakaatu i tetahi wa motuhake i runga i te ra motuhake, i te waa ranei kaore he korero mo te ra. Ka taea hoki te whakaatu i tetahi ra motuhake, kaore he wa. Tautoko rohe wa.Ko nga mea rangitahi ka tino mohio ki te rohe waahi ka taea te huri puta noa i nga waahi waahi rereke. Ka tautokohia ano hoki e Moment nga rohe wa, engari me whai whare pukapuka waahi-waahi taapiri. Te Hurihuri. Ina hangahia he ahanoa Rangi, kaore e taea te whakarereke. Karekau te hurihanga taima, rohe wa ranei e whakarereke i te ahanoa o raro. Engari, ka hangaia e ratou he ahanoa Rangitahi hou. 1-i runga i te taupūtanga. Ko te puna noa o nga pepeke me te API Ra (me te Moment) ko nga marama he kore-taurangi. Ko te tikanga ko Hanuere te marama 0, kaua ki te marama 1 e mohio ana tatou katoa i roto i te ao. Ka whakatikahia e te rangi ma te whakamahi i te tohu-a-1 - Ko Hanuere te marama tuatahi. Kua hangaia ki roto i te kaitirotiro.I te mea ko te Temporal he API i roto i te tirotiro, kaore he taapiri ki te rahi o te paihere o to tono.
He mea nui ano kia mohio ko te API Ra e kore e haere. Ahakoa ka whakakapi a Temporal i tenei API, kaore i te tangohia, ka whakakorehia ranei. He maha nga tono ka pakaru mena ka tangohia ohoreretia e nga kaitirotiro te API Rara. Heoi, kia maumahara ano kua kiia ko Moment he kaupapa tuku iho i roto i te aratau tiaki. I roto i te toenga o te tuhinga, ka titiro tatou ki etahi "tohanga" mo te heke i te waehere e pa ana ki te Moment ki te API Takiwa hou. Me timata taatau ki te whakatikatika! Te Waihanga Ahanoa Te Ra me te Wa I mua i te mahi raweke i nga ra me nga wa, me hanga he ahanoa hei tohu mo ratou. Hei waihanga i tetahi ahanoa Moment hei tohu i te ra me te wa o naianei, whakamahia te mahi momeniti. const inaianei = moment(); console.log(inaianei); // Moment<2026-02-18T21:26:29-05:00>
Ka taea te whakahōputu, te raweke rānei i tēnei ahanoa ina hiahiatia.
// tahuri ki UTC //whakatupato: Ka huri tenei i te ahanoa Moment ka tuu ki te aratau UTC! console.log(now.utc()); // Moment<2026-02-19T02:26:29Z>
// tāia he aho kua whakahōputuhia - mōhio kei te whakamahi i te wā UTC ināianei console.log(now.format('MM/DD/YYYY hh:mm:ss a')); // 02/19/2026 02:27:07 am
Ko te mea nui hei maumahara mo Moment ko tetahi mea Moment kei roto tonu nga korero mo te wa me te ra. Mena ka hiahia koe ki te mahi me nga korero wa, he pai tenei, engari ka puta he whanonga ohorere i roto i nga ahuatanga penei i te Wa Tiaki Awatea, i nga tau peke ranei, ka pa te ra ki nga tatauranga taima. He ngawari ake te waatea. Ka taea e koe te hanga ahanoa hei tohu i te ra me te wa o naianei ma te hanga i tetahi ahanoa Temporal.Instant. He tohu tenei i te wa i tautuhia e te wa mai i te "wa" (i waenganui po UTC i te Hanuere 1, 1970). Ka taea e te rangi te tohutoro i tenei wa tonu me te tika o te taumata nanosecond. const inaianei = Temporal.Now.instant();
// kite nanohekona mata mai i te wa console.log(now.epochNanoseconds); // 1771466342612000000n
// hōputu mo UTC console.log(now.toString()); // 2026-02-19T01:55:27.844Z
// whakahōputu mō tētahi rohe wā console.log(now.toString({ TimeZone: 'America/New_York' })); // 2026-02-18T20:56:57.905-05:00
Ka taea hoki te hanga taonga mo te wa me te ra motuhake ma te whakamahi i te tikanga mai i te pateko.
const myInstant = Temporal.Instant.from('2026-02-18T21:10:00-05:00');
// Whakahōputu te inamata i roto i te rohe wa rohe. Kia mahara ko tenei anake te mana whakahaere // te whakahōputu - kare e whakahuri i te ahanoa penei i a moment.utc. console.log(myInstant.toString({TimeZone: 'America/New_York' })); // 2026-02-18T21:10:00-05:00
Ka taea hoki e koe te hanga i etahi atu momo mea Taonga, tae atu ki:
Temporal.PlainDate: He ra kaore he korero mo te wa. Temporal.PlainTime: He wa kaore he korero mo te ra. Temporal.ZonedDateTime: He ra me te wa i roto i te rohe wa motuhake.
He tikanga mai ia o enei ka taea te karanga me tetahi ahanoa e tohu ana i te ra me te wa, te aho ra ranei hei poroporoaki. // He ra noa const i tenei ra = Temporal.PlainDate.from({ tau: 2026, marama: 2, // note kei te whakamahi matou i te 2 mo Hui-tanguru rā: 18 }); console.log(today.toString()); // 2026-02-18
// He wa noa const lunchTime = Temporal.PlainTime.from({ haora: 12 }); console.log(lunchTime.toString()); // 12:00:00
// He ra me te wa i te rohe wa o te Rawhiti o Amerika const dueAt = Temporal.ZonedDateTime.from({ TimeZone: 'Amerika/New_York', tau: 2026, marama: 3, rā: 1, haora: 12, meneti: 0, tuarua: 0 }); console.log(dueAt.toString()); // 2026-03-01T12:00:00-05:00[Amerika/New_York]
Paring Kua hipokina e matou te hanga hotaka o nga korero mo te ra me te wa. Inaianei ka titiro tatou ki te poroporoaki. Ko te Parsing tetahi waahi he ngawari ake te Moment i te API Takitahi kua hangaia. Ka taea e koe te wetewete i te aho ra ma te tuku ki te mahi mo te waa. Ma te tohenga kotahi, ka tatari a Moment i te aho ISO ra, engari ka taea e koe te whakamahi i etahi atu whakatakotoranga mena ka tukuna e koe he tohenga tuarua e tohu ana i te whakatakotoranga ra e whakamahia ana.
const isoDate = moment('2026-02-21T09:00:00'); const formattedDate = moment('2/21/26 9:00:00', 'M/D/YY h:mm:ss');
console.log(isoDate); // Moment<2026-02-21T09:00:00-05:00>
console.log(formattedDate); // Moment<2026-02-21T09:00:00-05:00>
I roto i nga putanga tawhito ake, ka pai te whakaaro a Moment ki te poroporoaki i nga aho ra kua whakahōputuhia. Ka puta pea he hua ohorere. Hei tauira, ko 02-03-2026 Pepuere 2, Maehe 3 ranei? Mo konei, ko nga putanga hou o Moment e whakaatu ana i te whakatupato whakamotitia rongonui mena ka karangahia kaore he aho whakahōputu ISO (mehemea ka tukuna ano te tohenga tuarua me te whakatakotoranga e hiahiatia ana). Ko te rangitahi ka poroporoaki i tetahi aho ra kua whakahōputuhia. Me ū te aho ki te whakatakotoranga ISO 8601, ki tana toronga ranei, RFC 9557. Ki te tukuna he aho ra e kore e tutuki ki te tikanga mai, ka makahia e Temporal he RangeError.
// Ma te whakamahi i te aho RFC 9557 ra 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
// Te whakamahi i te aho e mohiotia ana i te ra const otherDate = Temporal.Instant.from('2/21/26 9:00:00'); // RangeError: Hapa rangitahi: He ahua muhu i te wa e porohi ana te uara tau.
Ko nga whakaritenga tika o te aho ra e whakawhirinaki ana ki te ahua o te ahanoa Rangitahi ka hangaia e koe. I roto i te tauira i runga ake nei, ka hiahia a Temporal.Instant he ISO katoa8601, RFC 9557 ranei te aho ra e tohu ana i te ra me te wa me te waahi waahi waahi, engari ka taea ano e koe te hanga taonga PlainDate, PlainTime ranei ma te whakamahi i tetahi waahanga iti o te whakatakotoranga ra. 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
Kia mahara ko enei aho me u tonu ki te whakatakotoranga e tumanakohia ana, ka puta he hapa.
// Te whakamahi i nga aho wa-kore. Ko enei katoa ka maka he RangeError. Temporal.PlainTime.from('9:00'); Temporal.PlainTime.from('9:00:00 AM');
Aki Pro: Te whakahaere i nga aho kore-ISONa te mea ka whakatauhia e te Rangitahi te pono, kare e ngana ki te tohu i te whakatakotoranga o te aho penei i te 02-01-2026. Mena ka whakamahia e to puna raraunga nga aho pera, me mahi koe i etahi whawhe aho hei whakatikatika i nga uara ki roto i te aho ISO penei i te 2026-02-01 i mua i te ngana ki te whakamahi me te Temporal.
Whakahōputu Ina whiwhi koe i tetahi ahanoa Moment or Temporal, ka hiahia pea koe ki te huri ki te aho whakahōputu i etahi wa. He tauira tenei he ahua ake ake a Moment. Ka karanga koe i te tikanga whakatakotoranga o te ahanoa me te aho o nga tohu e whakaatu ana i te whakatakotoranga ra e hiahiatia ana. rā pūmau = moment();
console.log(date.format('MM/DD/YYYY')); // 02/22/2026
console.log(date.format('MMMM Mahi YYYY, h:mm:ss a')); // Hui-tanguru 22nd 2026, 8:18:30 pm
I tetahi atu taha, ko te Temporal e hiahia ana koe kia kaha ake te korero. Ko nga mea rangitahi, penei i te Inamata, he tikanga toLocaleString e whakaae ana ki nga momo whiringa whakahōputu kua tohua hei taonga mo tetahi mea.
const date = Temporal.Now.instant();
// me te kore tautohetohe, ka whiwhi tatou i te whakatakotoranga taunoa mo te waahi o naianei console.log(date.toLocaleString()); // 2/22/2026, 8:23:36 PM (mehemea he rohe o en-US)
// whakawhiti i nga whiringa whakahōputu hei whakaputa i te aho whakatakotoranga ritenga console.log(date.toLocaleString('en-US', { marama: 'roa', rā: 'tau', tau: 'tau', haora: '2-mati', meneti: '2-mati' })); // Hui-tanguru 22, 2026 i 8:23 PM
// tukuna noa nga mara e hiahia ana koe ki te aho whakatakotoranga console.log(date.toLocaleString('en-US', { marama: 'poto', rā: 'tau' })); // Hui-tanguru 22
Ko te whakahōputu rā rangitahi kei te whakamahi i te Intl.DateTimeFormat API (kei te waatea noa i roto i nga kaitirotiro hou) i raro i te awhi. Ko te tikanga ka taea e koe te hanga i tetahi ahanoa DateTimeFormat ka taea te whakamahi me o whiringa whakahōputu ritenga, ka tuku i nga ahanoa Rangi ki tana tikanga whakatakotoranga. Na tenei, kaore i te tautoko i nga whakatakotoranga ra ritenga penei i a Moment. Mena ka hiahia koe ki tetahi mea penei i te 'Q1 2026' me etahi atu whakahōputu motuhake, ka hiahia pea koe ki etahi waehere whakahōputu ra ritenga, ka toro atu ranei mo te whare pukapuka tuatoru. const formatter = new Intl.DateTimeFormat('en-US', { marama: '2-mati', rā: '2-mati', tau: 'tau' });
const date = Temporal.Now.instant(); console.log(formatter.format(ra)); // 02/22/2026
He ngawari ake te tuhi i nga tohu whakahōputu o Moment, engari kaore i te pai ki te rohe. Ko nga aho whakatakotoranga he "waehere pakeke" penei i te raupapa marama/ra. Ko te painga o te whakamahi i tetahi ahanoa whirihoranga, pera i a Temporal, ka uru aunoa ki tetahi waahi ka whakamahi i te whakatakotoranga tika. const date = Temporal.Now.instant();
Const FormatOptions = { marama: 'tau', rā: 'tau', tau: 'tau' };
console.log(date.toLocaleString('en-US', FormatOptions)); // 2/22/2026
console.log(date.toLocaleString('en-GB', FormatOptions)); // 22/02/2026
Nga tatauranga ra I roto i te maha o nga tono, me mutu koe ki te mahi i etahi tatauranga i te ra. Ka hiahia pea koe ki te taapiri, ki te tango i nga waeine wa (ra, haora, hēkona, aha atu). Hei tauira, mena kei a koe te ra o naianei, ka hiahia pea koe ki te whakaatu ki te kaiwhakamahi te ra 1 wiki mai i naianei. He tikanga o nga mea momeniti penei i te taapiri me te tango hei mahi i enei mahi. Ko enei mahi ka tango i te uara me te waeine, hei tauira: taapiri(7, 'ra'). Ko tetahi rereketanga nui i waenga i te Moment me te Rangitahi, engari, i te wa e mahi ana i enei tatauranga ra, ka whakarereketia te ahanoa o raro ka ngaro tona uara taketake. const inaianei = moment();
console.log(inaianei); // Moment<2026-02-24T20:08:36-05:00>
const nextWeek = now.add(7, 'ra'); console.log(NextWeek); // Moment<2026-03-03T20:08:36-05:00>
// Gotcha - i whakahurihia te mea taketake console.log(inaianei); // Moment<2026-03-03T20:08:36-05:00>
Hei karo i te ngaro o te ra tuatahi, ka taea e koe te waea ki te karaka i runga i te ahanoa Moment hei hanga kape. const inaianei= momeniti(); const nextWeek = now.clone().add(7, 'ra');
console.log(inaianei); // Moment<2026-02-24T20:12:55-05:00>
console.log(NextWeek); // Moment<2026-03-03T20:12:55-05:00>
I tetahi atu taha, ko nga mea rangitahi ka kore e rereke. Ina oti te hanga e koe he ahanoa penei i te Inamata, PlainDate, me era atu mea, e kore e huri te uara o taua mea. He tikanga taapiri me te tango i nga mea rangitahi. Ko te rangitahi he tino whiriwhiri ko tehea wae wa ka taea te taapiri ki nga momo ahanoa. Hei tauira, kaore e taea e koe te taapiri i nga ra ki te Inamata:
const inaianei = Temporal.Now.instant(); const nextWeek = now.add({ra: 7 }); // RangeError: Hapa rangitahi: Ko te waeine nui rawa e kore e noho hei wae rangi
Ko tenei na te mea ko nga mea Inamata e tohu ana i tetahi wa motuhake i te UTC, he maramataka-agnostic. Na te mea ka huri te roa o te ra i runga i nga ture rohe waahi penei i te Wa Tiaki Awatea, kaore tenei tatauranga i te waatea i te Inamata. Ka taea e koe te mahi i tenei mahi ki etahi atu momo taonga, penei i te PlainDateTime: const inaianei = Temporal.Now.plainDateTimeISO(); console.log(now.toLocaleString()); // 2/24/2026, 8:23:59 PM
const nextWeek = now.add({ra: 7 });
// Kia mahara kei te noho tonu te PlainDateTime taketake kaore i rereke console.log(now.toLocaleString()); // 2/24/2026, 8:23:59 PM
console.log(NextWeek.toLocaleString()); // 3/3/2026, 8:23:59 PM
Ka taea hoki e koe te tatau i te nui o te wa i waenga i nga mea e rua mo te Momeniti, mo te Rangitahi ranei. Ma te mahi rereke a Moment, me whakarato e koe he waeine mo te kirikiri, ki te kore ka hoki mai te rereketanga i roto i nga manomano. 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, 'ra')); // 1
Ki te mahi i tenei me tetahi ahanoa Rangitahi, ka taea e koe te tuku tetahi atu ahanoa Takiwa ki ona tikanga tae noa ki muri mai ranei. Ka whakahokia mai he ahanoa Rangitahi.Roa kei roto nga korero mo te rereketanga o te wa. He taonga te ahanoa Roa mo ia waahanga o te rereketanga, ka taea hoki te whakaputa i te aho roanga ISO 8601 hei tohu i te rereketanga o te waa.
const date1 = Temporal.PlainDateTime.from('2026-02-21T09:00:00'); const date2 = Temporal.PlainDateTime.from('2026-02-22T10:30:00');
// largestUnit he tohu te waeine nui rawa atu o te wa hei tohu // i te tātaitanga roa const diff = date2.ince(date1, {Unit rahi: 'ra' });
console.log(diff.days); // 1
console.log(diff.hours); // 1
console.log(diff.minutes); // 30
console.log(diff.toString()); // P1DT1H30M // (ISO 8601 aho roa: 1 ra, 1 haora, 30 meneti)
Te whakatairite i nga ra me nga taima Ko te Moment me te Rangitahi ka taea e koe te whakataurite i nga ra me nga wa ki te whakatau ko wai ka puta i mua i tera, engari me whai huarahi rereke me te API. Ka whakarato a Moment i nga tikanga penei i mua i mua, i muri i muri, me te isSame hei whakatairite i nga taonga Momen e rua. const date1 = moment('2026-02-21T09:00:00'); const date2 = moment('2026-02-22T10:30:00');
console.log(date1.isBefore(date2)); // pono
Ka whakamahia e te Rangi he tikanga whakatairite pateko hei whakataurite i waenga i nga mea e rua o te momo rite. Ka hoki mai -1 mena ka tae mai te ra tuatahi i mua i te tuarua, 0 mena he rite, 1 mena ka tae mai te ra tuatahi i muri i te tuarua. Ko te tauira e whai ake nei e whakaatu ana me pehea te whakatairite i nga taonga PlainDate e rua. Ko nga tohenga e rua ki te Temporal.PlainDate.compare me waiho hei taonga PlainDate.
const date1 = Temporal.PlainDate.from({ tau: 2026, marama: 2, ra: 24 }); const date2 = Temporal.PlainDate.from({ tau: 2026, marama: 3, ra: 24 });
// ka tae mai te ra1 i mua i te ra2, na -1 console.log(Temporal.PlainDate.compare(date1, date2));
// Hapa ki te ngana tatou ki te whakataurite i nga taonga e rua o nga momo rereke console.log(Temporal.PlainDate.compare(date1, Temporal.Now.instant())); // TypeError: Hapa rangitahi: Muhu nga mara PlainDate i whakaratohia.
Ina koa, he mea ngawari tenei ki te whakariterite i te huinga o nga mea rangitahi. // He huinga o nga taonga Temporal.PlainDate rā pūmau = [...];
// whakamahia Temporal.PlainDate.compare hei mahi whakatairite dates.sort(Temporal.PlainDate.compare);
Nga Huringa Rohe Wa Kaore te whare pukapuka Moment matua e tautoko i nga huringa rohe wa. Mena kei te hiahia koe ki tenei mahi, me whakauru ano koe i te kete waahi-waahi. Ko tenei kete kaore e taea te ruirui i te rakau, na reira ka taea te taapiri atu ki te rahi o to paihere. Ina oti i a koe te whakaurunga waahi-waahi, ka taea e koe te huri i nga ahanoa Moment ki nga rohe waahi rereke me te tikanga tz. Pērā ki ētahi atu mahinga Moment, ka huri tenei i te kaupapaahanoa. // Te whakaaro ki te wa US Eastern const inaianei = moment(); console.log(inaianei); // Moment<2026-02-28T20:08:20-05:00>
// Tahuri ki te wa o te Moana-nui-a-Kiwa. // Kua ngaro te wa tuatahi ki te Rawhiti. now.tz('America/Los_Angeles'); console.log(inaianei); // Moment<2026-02-28T17:08:20-08:00>
Ka hangaia te taumahinga rohe wa ki roto i te API Rangitahi ina whakamahi i tetahi ahanoa Temporal.ZonedDateTime. Kei roto i enei ahanoa he tikanga withTimeZone e whakahoki ana i te ZonedDateTime hou e tohu ana i te waa kotahi, engari i roto i te rohe wa kua tohua. // Ano, ka whakaaro te wa US Eastern const inaianei = Temporal.Now.zonedDateTimeISO(); console.log(now.toLocaleString()); // 2/28/2026, 8:12:02 PM EST
// Tahuri ki te wa o te Moana-nui-a-Kiwa const nowPacific = now.withTimeZone('America/Los_Angeles'); console.log(nowPacific.toLocaleString()); // 2/28/2026, 5:12:02 PM PST
// Ko te ahanoa taketake kare e rereke console.log(now.toLocaleString()); // 2/28/2026, 8:12:02 PM EST
Tuhipoka: Ko nga uara whakahōputu i whakahokia mai e toLocaleString, ko te tikanga o te ingoa, e whakawhirinaki ana ki te rohe. I whakawhanakehia te tauira waehere i roto i te rohe en-US, no reira he penei te whakatakotoranga: 2/28/2026, 5:12:02 PM PST. I tetahi atu waahi, he rereke pea tenei. Hei tauira, i te rohe en-GB, ka whiwhi koe i tetahi mea penei i te 28/2/2026, 17:12:02 GMT-8. He Whakahou-ao Mehemea kei te hanga tatou i tetahi taupānga mo te whakarite kaupapa puta noa i nga rohe waahi. Ko tetahi waahanga o tenei taupānga he mahi, getEventTimes, e mau ana i te aho ISO 8601 e tohu ana i te wa me te ra o te huihuinga, he rohe waahi rohe, me tetahi rohe wa kua whakaritea. Ka waihangahia e te mahi nga aho whakahōputu wā me te rā mō te takahanga i ngā rohe wā e rua. Mena ka hoatu te taumahi he aho whakauru ehara i te aho wa tika, ka puta he hapa. Anei te whakatinanatanga taketake, ma te whakamahi i te Moment (me whakamahi ano hoki i te kete waahi-waahi).
kawemai te wa mai i te 'moment-timezone';
mahi getEventTimes(InputString, userTimeZone, targetTimeZone) { const timeFormat = 'MMM D, YYYY, h:mm:ss a z';
// 1. Waihangahia te wa tuatahi ki te rohe waahi o te kaiwhakamahi HuihuingaWa = moment.tz( WhakauruKua, moment.ISO_8601, // Me tumanako he aho ISO 8601 pono, // Te poroporoaki kaiwhakamahiTimeZone );
// Makahia he hapa ki te kore te whakauruString i tohu i te ra whaimana mehemea (!eventTime.isValid()) { maka te Hapa hou('Tauru ra/wa muhu'); }
// 2. Tātaihia te wā i whakaritea // CRITICAL: Me kati tatou, ka huri ranei te 'eventTime' mo ake tonu atu! const targetTime = eventTime.clone().tz(targetTimeZone);
hoki { rohe: eventTime.format(timeFormat), ūnga: targetTime.format(timeFormat), }; }
mahere mahi = getEventTimes( '2026-03-05T15:00-05:00', 'Amerika/New_York', 'Europe/London', );
console.log(schedule.local); // Maehe 5, 2026, 3:00:00 pm EST
console.log(schedule.target); // Maehe 5, 2026, 8:00:00 pm GMT
I roto i tenei tauira, kei te whakamahi matou i te whakatakotoranga ra e tumanakohia ana o ISO 8601, he pai te hanga ki Moment. Kei te whakamahi hoki matou i te whakamaarama kaha, ko te tikanga kare a Moment e ngana ki te matapae me te aho ra kaore e rite ki te whakatakotoranga. Mēnā ka tukuna he aho rā kore-ISO, ka puta he ahanoa rā muhu, ka tukuna he hapa. He rite te ahua o te whakatinanatanga Rangi, engari he iti noa nga rereketanga.
mahi getEventTimes(InputString, userTimeZone, targetTimeZone) { // 1. Porohia te whakauru ki roto i te Inamata, katahi ka hanga // he ZonedDateTime i te rohe o te kaiwhakamahi. const inamata = Temporal.Instant.from(inputString); const eventTime = instant.toZonedDateTimeISO(userTimeZone);
// 2. Hurihia ki te rohe whainga // Ka whakahoki aunoa tenei i tetahi mea HOU; He haumaru te 'eventTime'. const targetTime = eventTime.withTimeZone(targetTimeZone);
// 3. Whakahōputu mā te Intl (i roto) kōwhiringa const = { tau: 'tau', marama: 'poto', rā: 'tau', haora: 'tau', meneti: '2-mati', tuarua: '2-mati', timeZoneName: 'poto' };
hoki { rohe: eventTime.toLocaleString(navigator.language, kōwhiringa), ūnga: targetTime.toLocaleString(navigator.language, kōwhiringa) }; }
mahere mahi = getEventTimes( '2026-03-05T15:00-05:00', 'Amerika/New_York', 'Europe/London', );
console.log(schedule.local); // Maehe 5, 2026, 3:00:00 PM EST
console.log(schedule.target); // Maehe 5, 2026, 8:00:00 PM GMT
Ki te Moment, me whakawhāitihia he aho whakatakotoranga mo nga aho ra ka puta. Ahakoa te waahi o te kaiwhakamahi, te waahi ranei, ka whakahōputuhia nga wa huihuinga hei Maehe 5, 2026, 3:00:00pm EST. Ano hoki, kaore e tika kia makahia he tuunga. Mena ka tukuna he aho muhu ki Temporal.Instant.from, ka tukuna e Temporal te otahi ma tatou. Ko tetahi mea hei maharatanga ko te mea ahakoa me te tino whakamaarama, he ngawari ake te putanga Moment. Ko te waahi me te waahi waahi i te mutunga o te aho. Me mohio ano koe i te mea kei te whakamahi matou i te navigator.language, ka haere noa tenei waehere i roto i te taiao tirotiro, na te mea kaore te kaiwhakatere i te tautuhi i te taiao Node.js. Ka whakamahi te whakatinanatanga Rangitahi i te waahi o te kaitirotiro o naianei (navigator.language), no reira ka whakahōputu aunoatia e te kaiwhakamahi nga wa takahanga ki tana whakatakotoranga wa rohe. I roto i te rohe en-US, ko Maehe 5, 2026, 3:00:00 pm EST. Heoi, mena kei Raanana te kaiwhakamahi, hei tauira, ka whakahōputuhia nga wa takahanga hei 5 Maehe 2026, 15:00:00 GMT-5. Whakarāpopototanga
Mahi Moment.js Rangitahi Te wa o naianei wā() Temporal.Now.zonedDateTimeISO() Paring ISO wā(str) Temporal.Instant.from(str) Tāpiri wā .apiti(7, 'ra') (whakarereke) .apiti({ nga ra: 7 }) (ahanoa hou) Rerekētanga .diff(atu, 'haora') .mai (other).haora Rohe wa .tz('Rohe/Ingoa') .withTimeZone('Rohe/Ingoa')
I te tuatahi o te titiro, he rereke te rerekee (me te ahua o te Waahi, i etahi wa ka nui ake te korero me te kaha ake) te wetereo, engari he maha nga painga nui ki te whakamahi i te Temporal over Moment.js:
Ko te mea tino marama he iti ake nga ohorere me nga pepeke ohorere. Te ahua nei he ngawari ake te waa, engari ka uru ki te "whakaahua," ka puta he ra i etahi wa. Mena ka hoatu e koe he mea muhu ki a Temporal, ka puta he hapa. Mena ka rere te waehere, ka mohio koe he ra whaimana koe. Ka taea e Moment te taapiri i te rahinga nui ki te paihere o te tono, ina koa kei te whakamahi koe i te kete waahi-waahi. Karekau he taapiri o te rangi (ka tukuna ki roto i o kaitirotiro whaainga). Ko te kore whakarerekētanga ka whakawhirinaki koe e kore koe e ngaro, e tuhirua ranei i nga raraunga i te wa e mahi ana koe i nga huringa ra me nga mahi. He rereke nga ahuatanga o te waa (Instant, PlainDateTime, ZonedDateTime) i runga ano i o hiahia, kei reira a Moment he takai huri noa i te tohu waahi UTC. Ka whakamahia e te Rangitahi nga API Intl mo te whakahōputu rā, ko te tikanga ka taea e koe te whakahōputu-a-rohe me te kore e tohu tohu tohu.
Notes On The Polyfill Ka rite ki te korero i mua ake nei, kei te waatea he polyfill Temporal, kua tohatohahia hei putea npm ko @js-temporal/polyfill. Mena kei te pirangi koe ki te whakamahi i te Temporal i tenei ra, ka hiahia koe ki tenei polyfill hei tautoko i nga kaitirotiro penei i a Safari kaore ano kia tukuna te API. Ko te korero kino me tenei ka taapiri atu ki to rahinga paihere. Ko te rongo pai ko te taapiri he iti ake i te waa-waa-waa. Anei he whakatairite mo nga rahi o te paihere e whakaatuhia ana e te Bundlephobia.com, he paetukutuku e whakaatu ana i nga korero mo nga rahi o nga kohinga npm (paahia ia ingoa mokihi kia kite i te tātaritanga Bundlephobia):
Mōkī Whakaitihia Whakaiti me te gzipped @js-temporal/polyfill 154.1 kB 44.1 kB taima 294.4 kB 75.4 kB waahi-waahi 1 MB 114.2 kB
Ko te polyfill hoki i mua i etahi take mahi e pa ana ki te whakamahi mahara, a i te wa e tuhi ana, ka kiia kei roto i te ahua alpha. Na tenei, kaore pea koe e hiahia ki te whakamahi i roto i te whakaputa kia tae ra ano ki te ahua pakeke ake. Ko etahi atu korero pai ko te tumanako ka kore e roa te polyfill (mehemea me tautoko koe i nga kaitirotiro tawhito, o te akoranga). I te wa e tuhi ana, kua tukuna a Temporal ki Chrome, Edge, me Firefox. Kaore ano kia tino rite i Safari, ahakoa te ahua kei te waatea me te haki oma i runga i te Arokite Hangarau hou.