Aneane kekahi ʻano palapala i kākau ʻia ma JavaScript e hana me nā manawa a i ʻole nā ​​​​lā ma kekahi mana. I ka hoʻomaka, ua kaupalena ʻia kēia i ka API lā i kūkulu ʻia. Aia kēia API i nā hana maʻamau, akā ua kaupalena ʻia i ka mea hiki ke hana. ʻO nā hale waihona puke ʻaoʻao ʻekolu e like me Moment.js, a me nā API i kūkulu ʻia ma hope e like me nā API Intl a me ka API Temporal hou, hoʻohui i ka maʻalahi o ka hana me nā manawa a me nā lā. Ke ala a me ka hāʻule ʻana o ka manawa.js ʻO Moment.js kahi waihona JavaScript me nā pono hana ikaika no ka hana ʻana me nā manawa a me nā lā. Loaʻa iā ia nā hiʻohiʻona nalo mai ka API lā kumu, e like me ka manipulation zone time, a maʻalahi nā hana maʻamau. Hoʻokomo pū ka Moment i nā hana no ka hoʻopili ʻana i nā lā a me nā manawa. Ua lilo ia i hale waihona puke i hoʻohana nui ʻia i nā noi like ʻole. Eia nō naʻe, ua loaʻa iā Moment kāna ʻāpana o nā pilikia. He hale waihona puke nui ia, a hiki ke hoʻohui nui i ka nui pūʻolo o kahi noi. No ka mea ʻaʻole kākoʻo ka waihona i ka lulu kumulāʻau (kahi hiʻohiʻona o nā pūʻulu hou e hiki ke wehe i nā ʻāpana i hoʻohana ʻole ʻia o nā hale waihona puke), ua hoʻokomo ʻia ka waihona Moment holoʻokoʻa inā ʻoe e hoʻohana i hoʻokahi a ʻelua paha o kāna mau hana. ʻO kekahi pilikia me Moment ʻo ia ka mea hiki ke hoʻololi ʻia nā mea āna i hana ai. He hopena ʻaoʻao ke kāhea ʻana i kekahi mau hana ma kahi mea Moment a hoʻololi i ka waiwai o ia mea. Hiki i kēia ke alakaʻi i ka hana i manaʻo ʻole ʻia a i ʻole nā ​​​​pepe. Ma 2020, ua hoʻoholo nā mea mālama o Moment e hoʻokomo i ka waihona i ke ʻano mālama. ʻAʻole hana ʻia kahi hoʻomohala hiʻohiʻona hou, a ʻōlelo ka poʻe mālama i ka hoʻohana ʻana no nā papahana hou. Aia kekahi mau waihona puke lā JavaScript, e like me ka lā-fns, akā aia kahi mea pāʻani hou ma ke kūlanakauhale, kahi API i kūkulu pololei ʻia i JavaScript: Temporal. He maʻamau hou ia e hoʻopiha ana i nā puka o ka API lā mua a me ka hoʻoponopono ʻana i kekahi o nā palena i loaʻa ma Moment a me nā hale waihona puke ʻē aʻe. He aha ke kino? He manawa hou ka manawa a me ka lā API i hoʻohui ʻia i ka maʻamau ECMAScript, e wehewehe ana i ka JavaScript hou. Ma Malaki 20266, ua hōʻea i ka Papa 4 o ke kaʻina hana TC39 (ke kōmike nāna e mālama i nā manaʻo a me nā hoʻohui ʻana i ka ʻōlelo JavaScript), a e hoʻokomo ʻia i ka mana hou o ka kikoʻī ECMAScript. Ua hoʻokō ʻia i nā polokalamu kele pūnaewele: Chrome 144+ a me Firefox 139+, me Safari e manaʻo ʻia e hahai koke. Loaʻa ka polyfill no nā polokalamu kele i kākoʻo ʻole ʻia a me Node.js. Hoʻokumu ka Temporal API i nā mea e hōʻike ana i nā manawa i ka manawa. Hiki iā ia ke lilo i mau peʻa manawa piha a me ka lā ma kahi ʻāpana manawa i hāʻawi ʻia, a i ʻole he laʻana maʻamau o ka manawa "waki pā" me ka ʻole o ka ʻike manawa a i ʻole ka lā. ʻO kekahi o nā hiʻohiʻona nui o Temporal:

ʻO nā manawa me nā lā a i ʻole nā ​​lā. Hiki i kahi mea Temporal ke hōʻike i kahi manawa kikoʻī ma kahi lā kikoʻī, a i ʻole kahi manawa me ka ʻike ʻole o ka lā. Hiki ke hōʻike ʻia kahi lā kikoʻī, me ka ʻole o ka manawa. Kākoʻo ʻāpana manawa. Ua ʻike piha nā mea manawa a hiki ke hoʻololi ʻia ma nā ʻāpana manawa like ʻole. Kākoʻo ʻo Moment i nā ʻāpana manawa, akā pono ia i ka waihona manawa-timezone hou. ʻAʻole hiki ke hoʻololi. Ke hana ʻia kahi mea Temporal, ʻaʻole hiki ke hoʻololi. ʻAʻole hoʻololi ka helu helu manawa a i ʻole ka hoʻololi ʻana i ka mea i lalo. Akā, hana lākou i kahi mea Temporal hou. 1-based indexing. ʻO kahi kumu maʻamau o nā pōpoki me ka API La (a me Moment) ʻo ia nā mahina i helu ʻole ʻia. ʻO ia hoʻi, ʻo Ianuali ka mahina 0, ma mua o ka mahina 1 e like me kā mākou i hoʻomaopopo ai i ke ola maoli. Hoʻoponopono ka manawa i kēia me ka hoʻohana ʻana i ka indexing 1-based - ʻo Ianuali ka mahina 1. Ua kūkulu ʻia i loko o ka polokalamu kele pūnaewele. ʻOiai he API ka Temporal i ka polokalamu kele pūnaewele ponoʻī, ʻaʻole ia e hoʻohui i ka nui o ka pūʻolo o kāu noi.

He mea nui hoʻi e hoʻomaopopo ʻaʻole e hele ana ka API lā. ʻOiai ua pani ʻo Temporal i kēia API, ʻaʻole ia e wehe ʻia a hoʻopau ʻia. He nui nā noi e haki inā wehe koke nā polokalamu kele i ka lā API. Eia nō naʻe, e hoʻomanaʻo ʻia ʻo Moment i kēia manawa he papahana hoʻoilina i ke ʻano mālama. Ma ke koena o ka ʻatikala, e nānā mākou i kekahi mau "mea ʻai" no ka neʻe ʻana i ka code Moment-based i ka API Temporal hou. E hoʻomaka kākou i ka refactoring! Hana ʻana i nā mea lā a me ka manawa Ma mua o ka hiki ke hana i nā lā a me nā manawa, pono mākou e hana i nā mea e hōʻike ana iā lākou. No ka hana ʻana i kahi mea Moment e hōʻike ana i ka lā a me ka manawa o kēia manawa, e hoʻohana i ka hana manawa. const i kēia manawa = manawa (); console.log(i kēia manawa); // Manawa<2026-02-18T21:26:29-05:00>

Hiki ke hoʻopololei ʻia kēia mea e like me ka mea e pono ai.

// hoohuli i UTC //'Ōlelo Aʻo: Hoʻololi kēia i ka mea Moment a hoʻokomo iā ia i ke ʻano UTC! console.log(now.utc()); // Manawa<2026-02-19T02:26:29Z>

// paʻi i kahi kaula i hoʻopaʻa ʻia - e hoʻomaopopo e hoʻohana ana ia i ka manawa UTC i kēia manawa console.log(now.format('MM/DD/YYYY hh:mm:ss a')); // 02/19/2026 02:27:07 am

ʻO ka mea nui e hoʻomanaʻo e pili ana i ka Moment, ʻo ia ka mea i loaʻa mau i ka ʻike e pili ana i ka manawa a me ka lā. Inā pono ʻoe e hana me ka ʻike manawa, ʻoi aku ka maikaʻi o kēia, akā hiki iā ia ke hana i ka hana i manaʻo ʻole ʻia i nā kūlana e like me ka Daylight Saving Time a i ʻole nā ​​makahiki lele, kahi e hiki ai i ka lā ke hoʻololi i ka helu manawa. ʻOi aku ka maʻalahi o ka manawa. Hiki iā ʻoe ke hana i kahi mea e hōʻike ana i ka lā a me ka manawa o kēia manawa ma ka hana ʻana i kahi mea Temporal.Instant. Hōʻike kēia i kahi kiko o ka manawa i wehewehe ʻia e ka manawa mai "ka wā" (UTC i ke aumoe ma Ianuali 1, 1970). Hiki i ka Temporal ke kuhikuhi i kēia manawa me ka pololei o ka pae nanosecond. const i kēia manawa = Temporal.Now.instant();

// ʻike i nā nanoseconds maka mai ka wā console.log(now.epochNanoseconds); // 1771466342612000000n

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

// format no kekahi wahi manawa console.log(now.toString({ timeZone: 'America/New_York' })); // 2026-02-18T20:56:57.905-05:00

Hiki ke hana ʻia nā mea manawa.

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

// Hōʻano i ka manawa koke ma ka palena manawa kūloko. E hoʻomanaʻo e hoʻomalu wale kēia // ka formatting - ʻaʻole ia e hoʻololi i ka mea e like me ka moment.utc. console.log(myInstant.toString({ timeZone: 'America/New_York' })); // 2026-02-18T21:10:00-05:00

Hiki iā ʻoe ke hana i nā ʻano mea Temporal ʻē aʻe, me:

Temporal.PlainDate: He lā me ka ʻike ʻole o ka manawa. Temporal.PlainTime: He manawa me ka ʻike ʻole o ka lā. Temporal.ZonedDateTime: He lā a me ka manawa ma kahi ʻāpana manawa kikoʻī.

Loaʻa i kēlā me kēia o kēia mau ʻano mai ka hiki ke kāhea ʻia me kahi mea e kuhikuhi ana i ka lā a/a i ʻole ka manawa, a i ʻole kahi kaula lā e hoʻopau ai. // He lā wale nō const i kēia lā = Temporal.PlainDate.from({ makahiki: 2026, mahina: 2, // e hoʻohana mākou i ka 2 no Pepeluali lā: 18 }); console.log(today.toString()); // 2026-02-18

// He manawa wale nō const lunchTime = Temporal.PlainTime.from({ hora: 12 }); console.log(lunchTime.toString()); // 12:00:00

// He lā a me ka manawa ma ka US Eastern time zone const dueAt = Temporal.ZonedDateTime.from({ timeZone: 'ʻAmelika/New_York', makahiki: 2026, mahina: 3, lā: 1, hola: 12, minuke: 0, lua: 0 }); console.log(dueAt.toString()); // 2026-03-01T12:00:00-05:00[America/New_York]

ʻO ka hoʻopaʻa ʻana Ua uhi mākou i ka hana papahana o ka ʻike o ka lā a me ka manawa. I kēia manawa e nānā kākou i ka parsing. ʻO Parsing kahi wahi i ʻoi aku ka maʻalahi o ka manawa ma mua o ka API Temporal i kūkulu ʻia. Hiki iā ʻoe ke hoʻokaʻawale i kahi kaula lā ma ka hāʻawi ʻana iā ia i ka hana manawa. Me ka hoʻopaʻapaʻa hoʻokahi, manaʻo ʻo Moment i kahi string lā ISO, akā hiki iā ʻoe ke hoʻohana i nā ʻano hoʻohālikelike ʻē aʻe inā hāʻawi ʻoe i kahi hoʻopaʻapaʻa ʻelua e kuhikuhi ana i ke ʻano o ka lā i hoʻohana ʻia.

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

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

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

Ma nā mana kahiko, e koho ʻo Moment i kahi koho maikaʻi loa e hoʻokaʻawale i nā kaula lā i hoʻopaʻa ʻia. Hiki i kēia ke alakaʻi i nā hopena i manaʻo ʻole ʻia. No ka laʻana, ʻo 02-03-2026 Pepeluali 2 a i ʻole Malaki 3? No kēia kumu, hōʻike ʻia nā mana hou o Moment i kahi ʻōlelo aʻoaʻo hoʻopau koʻikoʻi inā kāhea ʻia me ka ʻole o kahi kaula lā i hoʻopaʻa ʻia ISO (koe ke hāʻawi ʻia ka hoʻopaʻapaʻa ʻelua me ke ʻano i makemake ʻia). Hoʻopili wale ʻo Temporal i kahi kaula lā i hoʻonohonoho pono ʻia. Pono ke kaula e hoʻokō i ke ʻano ISO 8601 a i ʻole kona hoʻonui ʻia, RFC 9557. Inā hoʻoili ʻia kahi kaula lā kūpono ʻole i ke ala mai, e hoʻolei ʻo Temporal i kahi RangeError.

// Ke hoʻohana nei i kahi kaula lā 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

// Ke hoʻohana nei i kahi kaula lā i ʻike ʻole ʻia const otherDate = Temporal.Instant.from('2/21/26 9:00:00'); // RangeError: Haʻihaʻi manawa: ʻAʻole kūpono ke ʻano i ka wā e koho ana i ka waiwai makahiki.

ʻO nā koi pololei o ke kaula lā e pili ana i ke ʻano o ka mea Temporal āu e hana nei. Ma ka laʻana i luna, pono ʻo Temporal.Instant i kahi ISO piha8601 a i ʻole RFC 9557 kaula lā e hōʻike ana i ka lā a me ka manawa me ka hoʻoneʻe ʻana o ka palena manawa, akā hiki iā ʻoe ke hana i nā mea PlainDate a i ʻole PlainTime me ka hoʻohana ʻana i kahi ʻāpana o ka hōpili lā. 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

E hoʻomanaʻo, pono e hoʻokō kēia mau kaula i ka ʻano i manaʻo ʻia, a i ʻole e kiola ʻia kahi hewa.

// Ke hoʻohana nei i nā kaula manawa kūpono ʻole. E hoʻolei kēia mau mea i kahi RangeError. Temporal.PlainTime.from('9:00'); Temporal.PlainTime.mai('9:00:00 AM');

Manaʻo kōkua: Ka mālama ʻana i nā kaula ISO ʻole no ka mea ʻo ka Temporal ka mea i hoʻokumu i ka hilinaʻi, ʻaʻole ia e hoʻāʻo e koho i ke ʻano o kahi kaula e like me 02-01-2026. Inā hoʻohana kāu kumu ʻikepili i kēlā mau kaula, pono ʻoe e hana i kekahi manipulation string e hoʻonohonoho hou i nā waiwai i kahi string ISO e like me 2026-02-01 ma mua o ka hoʻāʻo ʻana e hoʻohana me Temporal.

Hoʻopāpā Ke loaʻa iā ʻoe kahi mea Moment a Temporal paha, makemake paha ʻoe e hoʻololi iā ia i kahi string formated i kekahi manawa. ʻO kēia kahi manawa i ʻoi aku ka pōkole o Moment. Kāhea ʻoe i ke ʻano hoʻohālikelike o ka mea me kahi kaula o nā hōʻailona e wehewehe ana i ke ʻano o ka lā i makemake ʻia. lā const = manawa ();

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

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

Ma ka ʻaoʻao ʻē aʻe, koi ʻo Temporal iā ʻoe e ʻoi aku ka verbose. Loaʻa i nā mea manawa, e like me Instant, ke ʻano toLocaleString e ʻae i nā koho hoʻopono like ʻole i kuhikuhi ʻia ma ke ʻano he waiwai o kahi mea.

const date = Temporal.Now.instant();

// me ka hoʻopaʻapaʻa ʻole, e loaʻa iā mākou ke ʻano paʻamau no ka wahi o kēia manawa console.log(date.toLocaleString()); // 2/22/2026, 8:23:36 PM (manaʻo ʻia he wahi o en-US)

// e hele i nā koho hoʻopono e hoʻohua i kahi string format maʻamau console.log(date.toLocaleString('en-US', { mahina: 'lōʻihi', lā: 'helu', makahiki: 'helu', hola: '2-helu', minuke: '2-helu' })); // Pepeluali 22, 2026 ma 8:23 PM

// e hele wale i nā māla āu e makemake ai i ke kaula format console.log(date.toLocaleString('en-US', { mahina: 'pōkole', lā: 'helu' })); // Feb 22

Hoʻohana maoli ka hoʻopololei ʻana i ka lā manawa i ka Intl.DateTimeFormat API (kahi i loaʻa maʻalahi i nā polokalamu kele hou) ma lalo o ka puʻupuʻu. ʻO ia ka mea hiki iā ʻoe ke hana i kahi mea DateTimeFormat hiki ke hoʻohana hou ʻia me kāu mau koho hoʻohālikelike maʻamau, a laila e hāʻawi i nā mea Temporal i kāna ʻano hoʻohālikelike. Ma muli o kēia, ʻaʻole ia e kākoʻo i nā palapala lā maʻamau e like me ka Moment. Inā makemake ʻoe i kahi mea e like me 'Q1 2026' a i ʻole ka hoʻopololei kūikawā ʻē aʻe, pono paha ʻoe i kahi code hoʻopono lā maʻamau a i ʻole e kiʻi i kahi waihona ʻaoʻao ʻekolu. const formatter = hou Intl.DateTimeFormat('en-US', { mahina: '2-helu', lā: '2-helu', makahiki: 'helu' });

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

ʻOi aku ka maʻalahi o ke kākau ʻana i nā hōʻailona hoʻopono o ka manawa, akā ʻaʻole lākou i pili i ka wahi. Hoʻopaʻa ʻia ka format "hard code" e like me ke kauoha o ka mahina/lā. ʻO ka maikaʻi o ka hoʻohana ʻana i kahi mea hoʻonohonoho, e like me ka Temporal, ʻo ia ka mea e hoʻololi maʻalahi i kēlā me kēia wahi i hāʻawi ʻia a hoʻohana i ke ʻano kūpono. const date = Temporal.Now.instant();

const formatOptions = { mahina: 'helu', lā: 'helu', makahiki: 'helu' };

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

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

Helu lā Ma nā noi he nui, pono ʻoe e hoʻopau i ka hana ʻana i kekahi mau helu i ka lā. Hiki paha iā ʻoe ke hoʻohui a unuhi i nā wae o ka manawa (lā, hola, kekona, etc.). No ka laʻana, inā loaʻa iā ʻoe ka lā o kēia manawa, makemake paha ʻoe e hōʻike i ka mea hoʻohana i ka lā 1 pule mai kēia manawa. Loaʻa i nā mea manawa ke ʻano e like me ka hoʻohui a me ka unuhi ʻana e hana i kēia mau hana. Lawe kēia mau hana i kahi waiwai a me kahi ʻāpana, no ka laʻana: hoʻohui (7, 'lā'). ʻO kekahi ʻokoʻa koʻikoʻi ma waena o Moment a me Temporal, ʻo ia ka wā e hana ai i kēia mau helu lā, hoʻololi ʻia ka mea i lalo a nalowale kona kumu waiwai. const i kēia manawa = manawa ();

console.log(i kēia manawa); // Manawa<2026-02-24T20:08:36-05:00>

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

// Gotcha - ua hoʻololi ʻia ka mea kumu console.log(i kēia manawa); // Manawa<2026-03-03T20:08:36-05:00>

I mea e pale ʻole ai i ka lā kumu, hiki iā ʻoe ke kelepona i ka clone ma ka mea Moment e hana i kope. const i kēia manawa= manawa(); const nextWeek = now.clone().add(7, 'lā');

console.log(i kēia manawa); // Manawa<2026-02-24T20:12:55-05:00>

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

Ma kekahi ʻaoʻao, ʻaʻole hiki ke hoʻololi ʻia nā mea Temporal. Ke hana ʻoe i kahi mea e like me Instant, PlainDate, a pēlā aku, ʻaʻole e loli ka waiwai o kēlā mea. Loaʻa nā ʻano hoʻohui a unuhi i nā mea kuʻuna. He koho liʻiliʻi ka manawa e pili ana i nā ʻāpana manawa e hiki ke hoʻohui ʻia i nā ʻano mea. No ka laʻana, ʻaʻole hiki iā ʻoe ke hoʻohui i nā lā i kahi Instant:

const i kēia manawa = Temporal.Now.instant(); const nextWeek = now.add({ nā lā: 7 }); // RangeError: Hewa manawa: ʻAʻole hiki i ka ʻāpana nui ke lilo i ʻāpana lā

ʻO kēia no ka mea e hōʻike ana nā mea Instant i kahi kikoʻī i ka manawa ma UTC a he agnostic kalena. No ka mea hiki ke loli ka lōʻihi o ka lā ma muli o nā lula āpana manawa e like me Daylight Saving Time, ʻaʻole i loaʻa kēia helu ʻana ma kahi Instant. Hiki iā ʻoe ke hana i kēia hana ma nā ʻano mea ʻē aʻe, e like me PlainDateTime: const i kēia manawa = Temporal.Now.plainDateTimeISO(); console.log(now.toLocaleString()); // 2/24/2026, 8:23:59 PM

const nextWeek = now.add({ nā lā: 7 });

// E hoʻomaopopo ʻaʻole i loli ka PlainDateTime kumu console.log(now.toLocaleString()); // 2/24/2026, 8:23:59 PM

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

Hiki iā ʻoe ke helu i ka nui o ka manawa ma waena o ʻelua mau mea Moment a i ʻole Temporal. Me ka hana ʻokoʻa o Moment, pono ʻoe e hāʻawi i kahi ʻāpana no ka granularity, i ʻole e hoʻihoʻi ia i ka ʻokoʻa i nā milliseconds. const date1 = manawa ('2026-02-21T09:00:00'); const date2 = manawa ('2026-02-22T10:30:00');

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

console.log(date2.diff(date1, 'lā')); // 1

No ka hana ʻana i kēia me kahi mea Temporal, hiki iā ʻoe ke hāʻawi i kahi mea Temporal ʻē aʻe i kāna mau ala a hiki i ka wā mai. Hoʻihoʻi kēia i kahi mea Temporal.Duration me ka ʻike e pili ana i ka ʻokoʻa o ka manawa. Loaʻa nā waiwai o ka mea Duration no kēlā me kēia ʻāpana o ka ʻokoʻa, a hiki ke hoʻohua i kahi string lōʻihi ISO 8601 e hōʻike ana i ka ʻokoʻa manawa.

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

// largestUnit e kuhikuhi ana i ka wae nui loa o ka manawa e hoike ai // i ka helu lōʻihi const diff = date2.since(date1, {Unit nui loa: 'lā' });

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

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

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

console.log(diff.toString()); // P1DT1H30M // (ʻO ke kaula lōʻihi ISO 8601: 1 lā, 1 hola, 30 mau minuke)

Hoʻohālikelike i nā lā a me nā manawa ʻAe ʻo Moment a me Temporal iā ʻoe e hoʻohālikelike i nā lā a me nā manawa e hoʻoholo ai i ka mea e hiki mai ana ma mua o kekahi, akā e lawe i nā ala like ʻole me ka API. Hāʻawi ʻo Moment i nā ala e like me isBefore, isAfter, a me isSame e hoʻohālikelike i ʻelua mau mea Moment. const date1 = manawa ('2026-02-21T09:00:00'); const date2 = manawa ('2026-02-22T10:30:00');

console.log(date1.isBefore(date2)); // ʻoiaʻiʻo

Hoʻohana ʻo Temporal i kahi ʻano hoʻohālikelike static e hana i ka hoʻohālikelike ma waena o nā mea ʻelua o ke ʻano like. Hoʻihoʻi ia -1 inā hiki ka lā mua ma mua o ka lua, 0 inā like lākou, a i ʻole 1 inā hiki mai ka lā mua ma hope o ka lua. Hōʻike kēia hiʻohiʻona pehea e hoʻohālikelike ai i ʻelua mau mea PlainDate. Pono nā manaʻo ʻelua iā Temporal.PlainDate.compare i nā mea PlainDate.

const date1 = Temporal.PlainDate.from({makahiki: 2026, mahina: 2, lā: 24}); const date2 = Temporal.PlainDate.from({makahiki: 2026, mahina: 3, lā: 24});

// hiki mai ka lā1 ma mua o ka lā2, no laila -1 console.log(Temporal.PlainDate.compare(date1, date2));

// Hapa inā hoʻāʻo mākou e hoʻohālikelike i ʻelua mea o nā ʻano like ʻole console.log(Temporal.PlainDate.compare(date1, Temporal.Now.instant())); // TypeError: Kūlana manawa: Invalid PlainDate fields provide.

ʻO ka mea nui, maʻalahi kēia e hoʻokaʻawale i kahi ʻano o nā mea Temporal i ka manawa. // He hui o nā mea Temporal.PlainDate const lā = [ ... ];

// hoʻohana i ka Temporal.PlainDate.compare ma ke ʻano he hana hoʻohālikelike dates.sort(Temporal.PlainDate.compare);

Hoʻololi ʻĀpana Manawa ʻAʻole kākoʻo ka waihona Moment kumu i ka hoʻololi ʻana o ka manawa. Inā makemake ʻoe i kēia hana, pono ʻoe e hoʻokomo i ka pūʻolo manawa-timezone. ʻAʻole hiki ke hoʻoluliluli ʻia kēia pūʻolo lāʻau, a no laila hiki ke hoʻohui nui i ka nui o kāu pūʻolo. Ke kau ʻoe i ka manawa-manawa, hiki iā ʻoe ke hoʻololi i nā mea Moment i nā ʻāpana manawa like ʻole me ke ʻano tz. E like me nā hana Moment ʻē aʻe, hoʻololi kēia i ke kumumea. // Ke manaʻo nei i ka manawa hikina US const i kēia manawa = manawa (); console.log(i kēia manawa); // Manawa<2026-02-28T20:08:20-05:00>

// E hoohuli i ka manawa Pakipika. // Ua nalowale ka manawa hikina mua. now.tz('America/Los_Angeles'); console.log(i kēia manawa); // Manawa<2026-02-28T17:08:20-08:00>

Hoʻokumu ʻia ka hana ʻāpana manawa i ka API Temporal i ka wā e hoʻohana ai i kahi mea Temporal.ZonedDateTime. Loaʻa kēia mau mea i kahi ala withTimeZone e hoʻihoʻi i kahi ZonedDateTime hou e hōʻike ana i ka manawa like i ka manawa, akā i ka palena manawa i ʻōlelo ʻia. // Eia hou, e manaʻo ana i ka manawa hikina US const i kēia manawa = Temporal.Now.zonedDateTimeISO(); console.log(now.toLocaleString()); // 2/28/2026, 8:12:02 PM EST

// E hoohuli i ka manawa Pakipika const nowPacific = now.withTimeZone('America/Los_Angeles'); console.log(nowPacific.toLocaleString()); // 2/28/2026, 5:12:02 PM PST

// ʻAʻole i loli ka mea kumu console.log(now.toLocaleString()); // 2/28/2026, 8:12:02 PM EST

'Ōlelo Aʻo: ʻO nā koina i hoʻopili ʻia i hoʻihoʻi ʻia e toLocaleString, e like me ka inoa i hōʻike ʻia, hilinaʻi kūloko. Ua hoʻomohala ʻia ka code sample ma ka ʻāina en-US, no laila ua like ke ʻano penei: 2/28/2026, 5:12:02 PM PST. Ma kahi wahi ʻē aʻe, ʻokoʻa paha kēia. No ka laʻana, ma ka wahi en-GB, loaʻa iā ʻoe kahi mea e like me 28/2/2026, 17:12:02 GMT-8. He Hooponopono Hou Manaʻo mākou e kūkulu nei i kahi polokalamu no ka hoʻonohonoho ʻana i nā hanana ma nā ʻāpana manawa. ʻO kahi ʻāpana o kēia app he hana, getEventTimes, e lawe ana i kahi kaula ISO 8601 e hōʻike ana i ka manawa a me ka lā o ka hanana, kahi ʻāpana manawa kūloko, a me kahi ʻāpana manawa. Hoʻokumu ka hana i nā kaula manawa a me ka lā no ka hanana ma nā ʻāpana manawa ʻelua. Inā hāʻawi ʻia ka hana i kahi kaula hoʻokomo ʻaʻole ia he string manawa / lā kūpono, e hoʻolei ia i kahi hewa. Eia ka hoʻokō mua, me ka hoʻohana ʻana i ka Moment (e koi pū ana i ka hoʻohana ʻana i ka pūʻolo manawa-manawa).

hoʻokomo i ka manawa mai 'moment-timezone';

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

// 1. E hana i ka manawa mua ma ka palena manawa o ka mea hoʻohana const eventTime = moment.tz( hoʻokomoString, moment.ISO_8601, // Manaʻo i kahi kaula ISO 8601 ʻoiaʻiʻo, // Hoʻopaʻa ʻoʻoleʻa mea hoʻohanaTimeZone );

// Kiola i kahi hewa inā ʻaʻole i hōʻike ka inputString i kahi lā kūpono inā (!eventTime.isValid()) { e hoʻolei i ka hewa hou ('Ka lā / manawa komo ʻole'); }

// 2. E helu i ka manawa kuhi // CRITICAL: Pono mākou e clone, a i ʻole 'eventTime' hoʻololi mau loa! const targetTime = eventTime.clone().tz(targetTimeZone);

hoʻi { kūloko: eventTime.format(timeFormat), pahu hopu: targetTime.format(timeFormat), }; }

const schedule = getEventTimes( '2026-03-05T15:00-05:00', 'America/New_York', 'Europa / Lākana', );

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

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

Ma kēia hiʻohiʻona, ke hoʻohana nei mākou i kahi ʻano lā i manaʻo ʻia o ISO 8601, i kūkulu ʻia i loko o ka Moment. Ke hoʻohana nei mākou i ka parsing koʻikoʻi, ʻo ia hoʻi, ʻaʻole e hoʻāʻo ʻo Moment e koho me kahi kaula lā i kūpono ʻole i ka hōpili. Inā hoʻoholo ʻia kahi kaula lā non-ISO, e hopena ia i kahi mea lā kūpono ʻole, a hoʻolei mākou i kahi hewa. ʻIke like ka hoʻokō Temporal, akā he mau ʻokoʻa koʻikoʻi.

hana getEventTimes(inputString, userTimeZone, targetTimeZone) { // 1. E hoʻopili pololei i ka mea hoʻokomo i kahi Instant, a laila hana // he ZonedDateTime ma ka ʻāpana o ka mea hoʻohana. const instant = Temporal.Instant.from(inputString); const eventTime = instant.toZonedDateTimeISO(userTimeZone);

// 2. E hoʻohuli i ka ʻāpana i kuhikuhi ʻia // Hoʻihoʻi aunoa kēia i kahi mea HOU; palekana 'eventTime'. const targetTime = eventTime.withTimeZone(targetTimeZone);

// 3. Hōʻano hoʻohana me ka Intl (i kūkulu ʻia) koho const = { makahiki: 'helu', mahina: 'pōkole', lā: 'helu', hola: 'helu', minuke: '2-helu', lua: '2-helu', timeZoneName: 'pōkole' };

hoʻi { kūloko: eventTime.toLocaleString(navigator.language, nā koho), pahuhopu: targetTime.toLocaleString(navigator.language, nā koho) }; }

const schedule = getEventTimes( '2026-03-05T15:00-05:00', 'America/New_York', 'Europa / Lākana', );

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

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

Me ka Moment, pono mākou e wehewehe pono i kahi string format no nā kaula lā i hopena. ʻAʻohe o ka mea hoʻohana a i ʻole ka ʻāina, e hoʻopili mau ʻia nā manawa hanana e like me Mar 5, 2026, 3:00:00ahiahi EST. Eia kekahi, ʻaʻole pono mākou e hoʻolei i kahi ʻokoʻa. Inā hāʻawi ʻia kahi kaula hewa ʻole iā Temporal.Instant.from, e hoʻolei ʻo Temporal i ka ʻokoʻa no mākou. Hoʻokahi mea e hoʻomaopopo ai ʻoiai me ka paʻi paʻa ʻana, ʻoi aku ka maʻalahi o ka mana o ka Moment. Pono ʻo Temporal i ka hoʻoneʻe ʻana o ka palena manawa ma ka hope o ke kaula. Pono ʻoe e hoʻomaopopo ʻoiai ke hoʻohana nei mākou i ka navigator.language, e holo wale kēia code i loko o kahi polokalamu kele pūnaewele, no ka mea ʻaʻole i wehewehe ʻia ka mea hoʻokele ma kahi kaiapuni Node.js. Hoʻohana ka hoʻokō Temporal i ka wahi o ka polokalamu kele pūnaewele i kēia manawa (navigator.language), no laila e loaʻa koke ka mea hoʻohana i nā manawa hanana i hoʻohālikelike ʻia i ko lākou ʻano manawa kūloko. Ma ka ʻāina en-US, ʻo kēia ka lā Malaki 5, 2026, 3:00:00 pm EST. Eia nō naʻe, inā aia ka mea hoʻohana ma Lākana, no ka laʻana, e hoʻopili ʻia nā manawa hanana e like me 5 Mar 2026, 15:00:00 GMT-5. Hōʻuluʻulu manaʻo

Hana Moment.js Manawa ʻO kēia manawa manawa() Temporal.Now.zonedDateTimeISO() Hoʻopili ISO manawa(str) Temporal.Instant.mai(str) Hoʻohui manawa .add(7, 'lā') (hoʻololi) .add({ nā lā: 7 }) (mea hou) ʻokoʻa .diff('ē aʻe, 'hola') .mai (kekahi) hora Wahi manawa .tz('Zona/Inoa') .withTimeZone('Zone/Inoa')

I ka nānā mua ʻana, ʻokoʻa iki paha ka ʻokoʻa (a ma ke ʻano o Temporal, i kekahi manawa ʻoi aku ka verbose a ʻoi aku ka koʻikoʻi) syntax, akā aia kekahi mau mea pono nui i ka hoʻohana ʻana i ka Temporal ma luna o Moment.js:

ʻO ka ʻoi aku o ka maopopo ʻana, ʻo ia ka liʻiliʻi o nā haʻalulu a me nā pōpoki i manaʻo ʻole ʻia. He ʻoi aku ka ʻoluʻolu o ka manawa, akā pili ia i ka "guesswork," hiki i kekahi manawa ke hopena i nā lā hewa. Inā hāʻawi ʻoe iā Temporal i kahi mea kūpono ʻole, hoʻolei ia i kahi hewa. Inā holo ke code, ʻike ʻoe he lā kūpono kāu. Hiki i ka manawa ke hoʻohui i ka nui nui i ka pūʻulu o ka noi, ʻoiai inā ʻoe e hoʻohana nei i ka pūʻolo manawa-manawa. ʻAʻohe mea hoʻohui ʻo Temporal (i ka manawa i hoʻouna ʻia i kāu mau polokalamu kele pūnaewele). Hāʻawi ka Immutability iā ʻoe i ka hilinaʻi ʻaʻole ʻoe e nalowale a kākau hou i ka ʻikepili i ka wā e hana ai i nā hoʻololi lā a me nā hana. ʻO nā hiʻohiʻona like ʻole o ka manawa (Instant, PlainDateTime, ZonedDateTime) e pili ana i kāu mau koi, kahi e hoʻopili mau ai ʻo Moment a puni kahi UTC timestamp. Hoʻohana ʻo Temporal i nā API Intl no ka hoʻopololei ʻana i ka lā, ʻo ia hoʻi, hiki iā ʻoe ke loaʻa ka hoʻopili ʻike kūloko me ka ʻole o ka wehewehe pono ʻana i nā hōʻailona.

Nā memo ma ka Polyfill E like me ka mea i ʻōlelo ʻia ma mua, aia kahi Temporal polyfill i loaʻa, hāʻawi ʻia ma ke ʻano he npm package i kapa ʻia @js-temporal/polyfill. Inā makemake ʻoe e hoʻohana i ka Temporal i kēia lā, pono ʻoe i kēia polyfill e kākoʻo i nā polokalamu kele e like me Safari ʻaʻole i hoʻouna i ka API. ʻO ka nūhou maikaʻi me kēia e hoʻohui ia i ka nui o kāu pūpū. ʻO ka nūhou maikaʻi ʻo ia ka hoʻohui nui ʻana ma mua o ka manawa a i ʻole ka manawa-manawa. Eia ka hoʻohālikelike o nā pūʻolo nui e like me ka hōʻike ʻana e Bundlephobia.com, kahi pūnaewele e hōʻike ana i ka ʻike no ka nui o ka pūʻolo npm (e kaomi i kēlā me kēia inoa pūʻolo e ʻike i ka loiloi Bundlephobia):

Pūʻolo Hoʻemi ʻia Hoʻemi ʻia a hoʻopaʻa ʻia @js-temporal/polyfill 154.1 kB 44.1 kB manawa 294.4 kB 75.4 kB wahi manawa-manawa 1 MB 114.2 kB

Ua loaʻa i ka polyfill kekahi mau pilikia hana e pili ana i ka hoʻohana ʻana i ka hoʻomanaʻo, a i ka manawa e kākau ai, manaʻo ʻia aia ma kahi kūlana alpha. Ma muli o kēia, ʻaʻole paha ʻoe makemake e hoʻohana iā ia i ka hana ʻana a hiki i kahi kūlana oʻo. ʻO ka nūhou maikaʻi ʻo ia ka manaʻolana ʻaʻole makemake ʻia ka polyfill lōʻihi (koe ke ʻole ʻoe e kākoʻo i nā polokalamu kele kahiko, ʻoiaʻiʻo). I ka manawa kākau, ua hoʻouna ʻia ʻo Temporal ma Chrome, Edge, a me Firefox. ʻAʻole mākaukau loa ia ma Safari, ʻoiai ʻike ʻia e loaʻa ana me kahi hae runtime ma ka ʻenehana ʻenehana hou loa.

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