Saika ny karazana fampiharana rehetra voasoratra amin'ny JavaScript dia miasa miaraka amin'ny fotoana na daty amin'ny fahafaha-manao sasany. Tany am-piandohana dia voafetra ho an'ny API Date naorina izany. Ity API ity dia ahitana fampiasa fototra, saingy voafetra ihany ny zavatra azony atao. Ny trano famakiam-bokin'ny antoko fahatelo toa an'i Moment.js, ary ny API naorina taty aoriana toy ny Intl API sy ny Temporal API vaovao, dia manampy fahafaha-manao bebe kokoa amin'ny fiasana amin'ny fotoana sy daty. Ny fisondrotana sy ny fianjeran'ny fotoana.js Moment.js dia tranomboky JavaScript miaraka amin'ny fitaovana mahery vaika amin'ny fiasana amin'ny fotoana sy daty. Tafiditra ao anatin'izany ny endri-javatra tsy hita avy amin'ny API Date fototra, toy ny fanodinkodinana ny faritry ny fotoana, ary manamora kokoa ny asa mahazatra maro. Ny fotoana ihany koa dia misy fiasa amin'ny fandrafetana daty sy ora. Lasa tranomboky be mpampiasa amin'ny fampiharana maro samihafa izy io. Na izany aza, nanana ny anjarany ihany koa i Moment. Tranomboky lehibe izy io, ary afaka manampy betsaka amin'ny haben'ny fonon'ny fampiharana. Satria tsy manohana ny fihozongozonana hazo ny tranomboky (endri-javatra iray amin'ireo fehezam-boninkazo maoderina afaka manaisotra ampahany amin'ny tranomboky tsy ampiasaina), dia tafiditra ao ny tranomboky Moment manontolo na dia iray na roa amin'ny asany ihany aza no ampiasainao. Ny olana hafa amin'ny Moment dia ny hoe azo ovaina ny zavatra noforoniny. Ny fiantsoana asa sasany amin'ny zavatra Moment dia misy fiantraikany ary manova ny sandan'io zavatra io. Mety hitarika fihetsika tsy ampoizina na bibikely izany. Tamin'ny taona 2020, nanapa-kevitra ny mpikarakara ny Moment fa hametraka ny tranomboky amin'ny fomba fikojakojana. Tsy misy fampivoarana endri-javatra vaovao atao, ary ny mpikarakara dia manoro hevitra ny tsy hampiasa azy io amin'ny tetikasa vaovao. Misy tranomboky daty JavaScript hafa, toy ny date-fns, saingy misy mpilalao vaovao ao an-tanàna, API natsangana mivantana amin'ny JavaScript: Temporal. Fenitra vaovao mameno ny lavaky ny API Date tany am-boalohany izy io ary mamaha ny fetra sasany hita ao amin'ny Moment sy ny tranomboky hafa. Inona no atao hoe Temporal? Temporal dia API ora sy daty vaovao ampidirina amin'ny fenitra ECMAScript, izay mamaritra ny JavaScript maoderina. Hatramin'ny martsa 20266, dia tonga amin'ny dingana faha-4 amin'ny fizotran'ny TC39 (ny komity manara-maso ny tolo-kevitra sy ny fanampiana amin'ny fiteny JavaScript), ary ho tafiditra ao amin'ny dikan-teny manaraka amin'ny famaritana ECMAScript. Efa nampiharina tamin'ny navigateur maromaro izy io: Chrome 144+ sy Firefox 139+, miaraka amin'ny Safari andrasana tsy ho ela. Misy polyfill ihany koa ho an'ny navigateur tsy tohanana sy Node.js. Ny Temporal API dia mamorona zavatra izay, amin'ny ankapobeny, maneho ny fotoana. Ireo dia mety ho hajia amin'ny fotoana feno sy daty ao amin'ny faritry ny ora iray, na mety ho ohatra ankapobeny amin'ny ora "famantaran'ny rindrina" tsy misy fampahalalam-potoana na daty. Ny sasany amin'ireo endri-javatra lehibe amin'ny Temporal dia ahitana:

Fotoana misy daty na tsy misy daty. Ny zavatra ara-potoana dia afaka maneho fotoana voafaritra amin'ny daty voafaritra, na fotoana tsy misy fampahafantarana daty. Ny daty voafaritra, tsy misy fotoana, dia azo aseho ihany koa. Fanohanana ny faritra ara-potoana. Ny zavatra ara-potoana dia mahafantatra tanteraka ny faritry ny ora ary azo ovaina amin'ny faritra samy hafa. Manohana ny faritry ny ora ihany koa ny Moment, saingy mitaky ny tranomboky fizaram-potoana fanampiny. Tsy miova.Rehefa noforonina ny zavatra Temporal dia tsy azo ovaina. Tsy manova ny zavatra fototra ny fiovam-pon'ny aritmetika ara-potoana na faritra. Mamorona zavatra Temporal vaovao kosa izy ireo. Fanondroana mifototra amin'ny 1. Loharanon'ny bibikely mahazatra miaraka amin'ny Date API (ary koa amin'ny Moment) dia ny volana tsy misy index. Midika izany fa volana 0 ny volana janoary fa tsy volana 1 araka ny fahafantarana ny tena fiainana. Manamboatra izany ny fotoana amin'ny fampiasana fanondroana mifototra amin'ny 1 - volana 1 ny volana Janoary. Izy io dia natsangana tao amin'ny navigateur. Koa satria Temporal dia API ao amin'ny navigateur mihitsy, dia tsy manampy na inona na inona amin'ny haben'ny fonosanao ny fampiharana.

Zava-dehibe ihany koa ny manamarika fa ny Date API dia tsy mandeha. Na dia misolo an'io API io aza ny Temporal, dia tsy esorina na tsy ampiasaina. Betsaka ny rindranasa ho tapaka raha esorina tampoka ny API Date ny mpitety tranonkala. Na izany aza, tadidio ihany koa fa ny Moment dia heverina ho tetikasa lova amin'ny fomba fikojakojana. Ao amin'ny ambin'ny lahatsoratra, dia hijery "recette" sasany amin'ny fifindra-monina kaody mifototra amin'ny Moment mankany amin'ny API Temporal vaovao isika. Andao hanomboka refactoring! Mamorona zavatra daty sy ora Alohan'ny ahafahantsika manodinkodina ny daty sy ny ora dia tsy maintsy mamorona zavatra maneho azy ireo isika. Mba hamoronana zavatra Moment maneho ny daty sy ora ankehitriny, ampiasao ny fiasa fotoana. const izao = fotoana (); console.log(ankehitriny); // Fotoana<2026-02-18T21:26:29-05:00>

Ity zavatra ity dia azo amboarina na amboarina araka izay ilaina.

// miova ho UTC //fampitandremana: Manova ny zavatra Moment izany ary mametraka azy amin'ny fomba UTC! console.log(now.utc()); // Fotoana<2026-02-19T02:26:29Z>

// manonta tady misy endrika - mariho fa mampiasa ny ora UTC izy izao console.log(now.format('MM/DD/YYYY hh:mm:ss a')); // 19/02/2026 02:27:07

Ny zava-dehibe tokony hotsaroana momba ny Moment dia ny zavatra iray Moment dia ahitana fampahalalana momba ny ora sy ny daty foana. Raha mila miasa amin'ny fampahalalana momba ny fotoana fotsiny ianao, dia matetika no tsara izany, saingy mety hiteraka fihetsika tsy ampoizina izany amin'ny toe-javatra toy ny Fotoan'ny Andron'ny Andron'ny andro na ny taona antsasak'adiny, izay mety hisy fiantraikany amin'ny kajy ny fotoana ny daty. Ny temporal dia mora kokoa. Afaka mamorona zavatra maneho ny daty sy ora ankehitriny ianao amin'ny famoronana zavatra Temporal.Instant. Izany dia maneho ny fotoana voafaritra amin'ny fotoana hatramin'ny "ny vanim-potoana" (UTC mamatonalina tamin'ny 1 Janoary 1970). Ny Temporal dia afaka manondro an'io eo noho eo amin'ny fotoana miaraka amin'ny mari-pahaizana nanosecond. const izao = Temporal.Now.instant();

// jereo nanoseconds manta hatramin'ny vanim-potoana console.log(now.epochNanoseconds); // 1771466342612000000n

// endrika ho an'ny UTC console.log(now.toString()); // 2026-02-19T01:55:27.844Z

// endrika ho an'ny faritra iray manokana console.log(now.toString({timeZone: 'America/New_York' })); // 2026-02-18T20:56:57.905-05:00

Temporal.Ny zavatra avy hatrany dia azo noforonina ho an'ny fotoana sy daty manokana amin'ny fampiasana ny fomba avy amin'ny statika.

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

// Ampidiro ao amin'ny faritry ny ora eo an-toerana ny fotoana fohy. Mariho fa io ihany no mifehy // ny format - tsy manova ny zavatra toy ny moment.utc. console.log(myInstant.toString({ timeZone: 'America/New_York' })); // 2026-02-18T21:10:00-05:00

Azonao atao koa ny mamorona karazana zavatra Temporal hafa, ao anatin'izany:

Temporal.PlainDate: Daty tsy misy fampahafantarana ny fotoana. Temporal.PlainTime: Fotoana tsy misy fampahafantarana daty. Temporal.ZonedDateTime: Daty sy ora ao amin'ny faritry ny ora manokana.

Ny tsirairay amin'izy ireo dia manana fomba avy izay azo antsoina miaraka amin'ny zavatra iray mamaritra ny daty sy/na ora, na tady daty handinihana. // Daty fotsiny const androany = Temporal.PlainDate.from({ taona: 2026, volana: 2, // mariho fa mampiasa 2 izahay ho an'ny Febroary andro: 18 }); console.log(today.toString()); // 2026-02-18

// Fotoana fotsiny const lunchTime = Temporal.PlainTime.from({ ora: 12 }); console.log(lunchTime.toString()); // 12:00:00

// Daty sy ora ao amin'ny faritra atsinanan'i Etazonia const dueAt = Temporal.ZonedDateTime.from({ timeZone: 'America/New_York', taona: 2026, volana: 3, andro: 1, ora: 12, minitra: 0, faharoa: 0 }); console.log(dueAt.toString()); // 2026-03-01T12:00:00-05:00[America/New_York]

Famakafakana Niresaka momba ny famoronana programa momba ny daty sy ny ora izahay. Andeha hojerentsika ny parsing. Ny famakafakana dia faritra iray ahitana ny Moment mora kokoa noho ny API Temporal namboarina. Azonao atao ny mamadika tady daty amin'ny alàlan'ny fandefasana azy amin'ny asa fotoana. Miaraka amin'ny tohan-kevitra tokana, ny Moment dia manantena tady daty ISO, saingy afaka mampiasa endrika hafa ianao raha manome tohan-kevitra faharoa mamaritra ny endrika daty ampiasaina.

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

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

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

Amin'ny dikan-teny taloha, ny Moment dia hanao tombantombana tsara indrindra handinihana ny tady daty voalamina tsy misy dikany. Mety hiteraka vokatra tsy ampoizina izany. Ohatra, ny 02-03-2026 ve ny 2 febroary sa 3 martsa? Noho izany antony izany, ny dikan-teny Moment vaovao kokoa dia mampiseho fampitandremana fanafoanana miharihary raha tsy misy tady daty voalamina ISO (raha tsy hoe omena koa ny hevitra faharoa miaraka amin'ny endrika tiana). Ny Temporal dia hamakivaky tady daty voalamina manokana. Ny kofehy dia tsy maintsy mifanaraka amin'ny endrika ISO 8601 na ny fanitarana azy, RFC 9557. Raha misy tady daty tsy mifanaraka amin'ny fomba avy, Temporal dia hanipy RangeError.

// Mampiasa tady daty 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

// Mampiasa tady daty tsy fantatra const otherDate = Temporal.Instant.from('2/21/26 9:00:00'); // RangeError: Fahadisoana ara-potoana: tarehin-tsoratra tsy mety raha mandinika ny sandan'ny taona.

Miankina amin'ny karazana zavatra Temporal izay noforoninao ny fepetra marina amin'ny tady daty. Amin'ny ohatra etsy ambony, Temporal.Instant dia mitaky ISO feno8601 na RFC 9557 tady daty mamaritra ny daty sy ny ora miaraka amin'ny fe-potoana offset, fa azonao atao ihany koa ny mamorona PlainDate na PlainTime amin'ny fampiasana ampahany kely amin'ny endrika daty. 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

Mariho fa ireo tady ireo dia tsy maintsy manaraka ny endrika andrasana, raha tsy izany dia hisy fahadisoana.

// Mampiasa tady tsy mifanaraka amin'ny fotoana. Ireo rehetra ireo dia hanipy RangeError. Temporal.PlainTime.from('9:00'); Temporal.PlainTime.from('9:00:00 AM');

Soso-kevitra Pro: Fikarakarana tady tsy ISOSatria ny Temporal no manao laharam-pahamehana ny fahamendrehana, dia tsy hanandrana haminavina ny endriky ny tady toy ny 02-01-2026. Raha mampiasa tady toy izany ny loharano angonao, dia mila manao fanodinkodinana tady ianao mba handaminana ireo soatoavina ho tady ISO toy ny 2026-02-01 alohan'ny hanandrana hampiasa azy amin'ny Temporal.

Fandrafetana Raha vantany vao manana zavatra Moment na Temporal ianao, dia mety ho tianao ny hamadika azy ho tady voalamina amin'ny fotoana iray. Ity dia ohatra iray izay somary fohy kokoa ny Moment. Antsoinao amin'ny alàlan'ny tady famantarana izay mamaritra ny endrika daty irina ny fomba firafitry ny zavatra. const date = fotoana ();

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

console.log(date.format('MMMM atao YYYY, h:mm:ss a')); // 22 Febroary 2026 amin'ny 8:18 hariva

Amin'ny lafiny iray, ny Temporal dia mitaky anao ho be verbose kokoa. Ny zavatra ara-potoana, toy ny Instant, dia manana fomba toLocaleString izay manaiky safidy fandrafetana isan-karazany voatondro ho fananan'ny zavatra iray.

const date = Temporal.Now.instant();

// tsy misy tohan-kevitra, dia hahazo ny format default ho an'ny toerana misy ankehitriny console.log(date.toLocaleString()); // 2/22/2026, 8:23:36 PM (mihevitra ny toerana misy ny en-US)

// mandalo safidy fandrafetana hamorona tady endrika mahazatra console.log(date.toLocaleString('en-US', { volana: 'lava', andro: 'numérique', taona: 'numérique', ora: '2-isa', minitra: '2-isa' })); // Febroary 22, 2026 amin'ny 8:23 PM

// mandalo fotsiny ny saha tianao amin'ny tady format console.log(date.toLocaleString('en-US', { volana: 'fohy', andro: 'numérique' })); // Feb 22

Ny fandrafetana daty ara-potoana dia tena mampiasa ny Intl.DateTimeFormat API (izay efa azo alaina amin'ny navigateur maoderina) eo ambanin'ny saron-tava. Midika izany fa afaka mamorona zavatra DateTimeFormat azo ampiasaina indray ianao miaraka amin'ny safidinao fandrafetana manokana, avy eo ampidiro amin'ny fomba endrika azy ny zavatra Temporal. Noho izany dia tsy manohana ny endrika daty mahazatra toa an'i Moment. Raha mila zavatra toy ny 'Q1 2026' na fandrafetana manokana hafa ianao, dia mety mila kaody fandrafetana daty manokana ianao na tonga any amin'ny tranomboky an'ny antoko fahatelo. const formatter = new Intl.DateTimeFormat('en-US', { volana: '2-isa', andro: '2-isa', taona: 'numérique' });

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

Tsotra kokoa ny soratana ny mari-pamantarana fandrafetana an'i Moment, saingy tsy mifanentana amin'ny faritra. Ny format dia mametraka zavatra "kaody sarotra" toy ny filaharan'ny volana/andro. Ny tombony amin'ny fampiasana zavatra fanamafisana, toy ny ataon'ny Temporal, dia ny fampifanarahana ho azy amin'ny toerana misy azy ary hampiasa ny endrika marina. const date = Temporal.Now.instant();

const formatOptions = { volana: 'numérique', andro: 'numérique', taona: 'numérique' };

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

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

Kajy daty Amin'ny fampiharana maro dia mila manao kajy vitsivitsy amin'ny daty iray ianao. Azonao atao ny manampy na manala ny isan'ny ora (andro, ora, segondra, sns.). Ohatra, raha manana ny daty ankehitriny ianao dia azonao atao ny mampiseho amin'ny mpampiasa ny daty 1 herinandro manomboka izao. Ny zavatra fotoana dia manana fomba toy ny manampy sy manala izay manao ireo asa ireo. Ireo fiasa ireo dia maka sanda sy singa iray, ohatra: add(7, 'andro'). Ny fahasamihafana lehibe eo amin'ny Moment sy Temporal anefa dia ny hoe rehefa manao ireo kajy daty ireo dia ovaina ny zavatra fototra ary very ny sandany tany am-boalohany. const izao = fotoana ();

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

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

// Gotcha - niova ny zavatra tany am-boalohany console.log(ankehitriny); // Fotoana<2026-03-03T20:08:36-05:00>

Mba tsy ho very ny daty tany am-boalohany dia azonao atao ny miantso clone amin'ny zavatra Moment mba hamoronana dika mitovy. const izao= fotoana(); const nextWeek = now.clone().add(7, 'andro');

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

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

Amin'ny lafiny iray, ny zavatra Temporal dia tsy miova. Rehefa namorona zavatra toy ny Instant, PlainDate, sy ny sisa ianao, dia tsy hiova na oviana na oviana ny sandan'io zavatra io. Ny zavatra temporal koa dia manana fomba manampy sy manala. Ny temporal dia somary misafidy ny amin'izay singam-potoana azo ampiana amin'ny karazana zavatra. Ohatra, tsy afaka manampy andro amin'ny Instant ianao:

const izao = Temporal.Now.instant(); const nextWeek = now.add({andro: 7 }); // RangeError: Fahadisoana ara-potoana: Ny singa lehibe indrindra dia tsy mety ho singa daty

Izany dia satria ny zavatra Instant dia maneho teboka manokana amin'ny fotoana ao amin'ny UTC ary agnostika kalandrie. Satria ny halavan'ny andro iray dia mety hiova arakaraka ny fitsipiky ny faritry ny ora toy ny Ora Andron'ny andro, dia tsy misy amin'ny Instant ity kajy ity. Azonao atao anefa ny manatanteraka ity asa ity amin'ny karazana zavatra hafa, toy ny PlainDateTime: const now = Temporal.Now.plainDateTimeISO(); console.log(now.toLocaleString()); // 2/24/2026, 8:23:59 PM

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

// Mariho fa ny PlainDateTime tany am-boalohany dia tsy miova console.log(now.toLocaleString()); // 2/24/2026, 8:23:59 PM

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

Azonao atao koa ny manao kajy hoe ohatrinona ny fotoana eo anelanelan'ny zavatra roa Moment na Temporal. Miaraka amin'ny fiasan'ny Moment, mila manome singa ho an'ny granularity ianao, raha tsy izany dia hamerina ny fahasamihafana ao anatin'ny milisegondra. const date1 = fotoana('2026-02-21T09:00:00'); const date2 = fotoana('2026-02-22T10:30:00');

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

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

Mba hanaovana izany amin'ny zavatra Temporal, azonao atao ny mampita zavatra Temporal hafa amin'ny fomba hatramin'izay na hatramin'izay. Ity dia mamerina zavatra Temporal.Duration misy fampahalalana momba ny fahasamihafan'ny fotoana. Ny zavatra Duration dia manana fananana ho an'ny singa tsirairay amin'ny fahasamihafana, ary afaka mamorona tady maharitra ISO 8601 maneho ny fahasamihafan'ny fotoana.

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

// largestUnit dia mamaritra ny singa lehibe indrindra amin'ny fotoana aseho // amin'ny kajy maharitra const diff = date2.since(date1, {Unit lehibe indrindra: 'andro' });

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

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

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

console.log(diff.toString()); // P1DT1H30M // (Taratasy maharitra ISO 8601: 1 andro, 1 ora, 30 minitra)

Fampitahana Daty sy Ora Ny fotoana sy ny fotoana dia samy mamela anao hampitaha ny daty sy ny ora mba hamaritana hoe iza no mialoha ny iray hafa, fa maka fomba hafa miaraka amin'ny API. Moment dia manome fomba toy ny isBefore, isAfter, ary isSame mba hampitahana zavatra roa Moment. const date1 = fotoana('2026-02-21T09:00:00'); const date2 = fotoana('2026-02-22T10:30:00');

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

Temporal dia mampiasa fomba fampitahana static hanaovana fampitahana eo amin'ny zavatra roa mitovy karazana. Miverina -1 raha tonga alohan'ny faharoa ny daty voalohany, 0 raha mitovy izy ireo, na 1 raha tonga aorian'ny faharoa ny daty voalohany. Ity ohatra manaraka ity dia mampiseho ny fomba fampitahana zavatra roa PlainDate. Ny hevitra roa amin'ny Temporal.PlainDate.compare dia tsy maintsy ho zavatra PlainDate.

const date1 = Temporal.PlainDate.from({ taona: 2026, volana: 2, andro: 24 }); const date2 = Temporal.PlainDate.from({ taona: 2026, volana: 3, andro: 24 });

// date1 dia tonga alohan'ny date2, ka -1 console.log(Temporal.PlainDate.compare(date1, date2));

// Error raha miezaka mampitaha zavatra roa samy hafa karazana console.log(Temporal.PlainDate.compare(date1, Temporal.Now.instant())); // TypeError: Fahadisoana ara-potoana: saha PlainDate tsy mety nomena.

Indrindra indrindra, manamora ny fandrindrana ireo zavatra Temporal araka ny filaharany. // Array amin'ny zavatra Temporal.PlainDate daty const = [ ... ];

// ampiasao ny Temporal.PlainDate.compare ho toy ny asa fampitahana dates.sort(Temporal.PlainDate.compare);

Fiovam-potoana Zone Ny tranomboky Moment fototra dia tsy manohana ny fiovam-potoana. Raha mila an'io fampiasa io ianao, dia mila mametraka ny fonosan'ny timezone ihany koa. Ity fonosana ity dia tsy azo hozongozonina amin'ny hazo, ary noho izany dia afaka manampy betsaka amin'ny haben'ny fonosanao. Rehefa avy nametraka fotoana-fotoana ianao dia azonao atao ny manova ny zavatra Moment ho faritra hafa amin'ny alàlan'ny fomba tz. Toy ny amin'ny hetsika Moment hafa, dia manova ny fototra izanyzavatra. // Raha heverina ny fotoanan'ny US Atsinanana const izao = fotoana (); console.log(ankehitriny); // Fotoana<2026-02-28T20:08:20-05:00>

// Avadika ho ora Pasifika. // Very ny fotoana tatsinanana tany am-boalohany. now.tz('Amerika/Los_Angeles'); console.log(ankehitriny); // Fotoana<2026-02-28T17:08:20-08:00>

Ny fampiasa amin'ny faritry ny fotoana dia natsangana ao amin'ny Temporal API rehefa mampiasa zavatra Temporal.ZonedDateTime. Ireo zavatra ireo dia misy fomba miaraka amin'nyTimeZone izay mamerina ZonedDateTime vaovao maneho ny fotoana mitovy, fa ao amin'ny faritry ny ora voatondro. // Indray mandeha, amin'ny fiheverana ny fotoana atsinanan'i Etazonia const izao = Temporal.Now.zonedDateTimeISO(); console.log(now.toLocaleString()); // 2/28/2026, 8:12:02 PM EST

// Avadika ho ora Pasifika const nowPacific = now.withTimeZone('Amerika/Los_Angeles'); console.log(nowPacific.toLocaleString()); // 2/28/2026, 5:12:02 PM PST

// Tsy miova ny zavatra voalohany console.log(now.toLocaleString()); // 2/28/2026, 8:12:02 PM EST

Fanamarihana: Ny soatoavina voavolavola naverin'ny toLocaleString dia miankina amin'ny toerana, araka ny hevitr'ilay anarana. Ny kaody santionany dia novolavolaina tao amin'ny faritra en-US, ka toy izao ny endrika: 2/28/2026, 5:12:02 PM PST. Any amin'ny toerana hafa, mety ho hafa izany. Ohatra, ao amin'ny toerana en-GB dia hahazo zavatra toy ny 28/2/2026, 17:12:02 GMT-8 ianao. Refactoring tena izy Eritrereto hoe manangana fampiharana handaminana hetsika manerana ny faritry ny ora isika. Ampahany amin'ity fampiharana ity ny fiasa, getEventTimes, izay maka tady ISO 8601 maneho ny ora sy ny datin'ny hetsika, ny faritry ny ora eo an-toerana ary ny faritry ny ora kendrena. Ny fiasa dia mamorona tady ora sy daty voalamina ho an'ny hetsika amin'ny faritra roa. Raha omena tady fampidirana izay tsy tady ora/daty manan-kery ny fiasa dia hiteraka hadisoana izany. Ity ny fampiharana tany am-boalohany, amin'ny fampiasana Moment (ilaina ihany koa ny fampiasana ny fonosan'ny timezone).

manafatra fotoana avy amin'ny 'moment-time zone';

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

// 1. Mamorona ny fotoana voalohany ao amin'ny faritry ny fotoanan'ny mpampiasa const eventTime = moment.tz( inputString, moment.ISO_8601, // Andraso ny tady ISO 8601 marina, // Famaritana henjana mpampiasaTimeZone );

// Atsipazo ny hadisoana raha tsy maneho daty manan-kery ny inputString raha (!eventTime.isValid()) { atsipy ny Error vaovao('Tsy mety ny daty / ora fampidirana'); }

// 2. Kajy ny fotoana kendrena // CRITICAL: Tsy maintsy manao clone isika, na hiova mandrakizay ny 'eventTime'! const targetTime = eventTime.clone().tz(targetTimeZone);

miverina { eo an-toerana: eventTime.format(timeFormat), tanjona: targetTime.format(timeFormat), }; }

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

console.log(schedule.local); // 5 Mar 2026 amin'ny 15:00 EST

console.log(schedule.target); // 5 Mar 2026 amin'ny 8:00 GMT

Amin'ity ohatra ity dia mampiasa endrika daty andrasana amin'ny ISO 8601 izahay, izay namboarina tsara ao amin'ny Moment. Mampiasa famafazana henjana ihany koa izahay, izay midika fa tsy hanandrana hamantatra amin'ny tady daty tsy mifanaraka amin'ny endrika i Moment. Raha lany ny tady daty tsy ISO, dia hiteraka zavatra daty tsy mety izany, ary misy hadisoana. Ny fampiharana Temporal dia mitovy, saingy misy fahasamihafana lehibe vitsivitsy.

function getEventTimes(inputString, userTimeZone, targetTimeZone) { // 1. Ampidiro mivantana ao anaty Instant ny fampidirana, dia mamorona // ZonedDateTime ao amin'ny faritry ny mpampiasa. const instant = Temporal.Instant.from(inputString); const eventTime = instant.toZonedDateTimeISO(userTimeZone);

// 2. Miova ho amin'ny faritra kendrena // Ity dia mamerina ho azy ny zavatra VAOVAO; 'EventTime' dia azo antoka. const targetTime = eventTime.withTimeZone(targetTimeZone);

// 3. Format mampiasa Intl (naorina) safidy const = { taona: 'numérique', volana: 'fohy', andro: 'numérique', ora: 'numérique', minitra: '2-isa', faharoa: '2-isa', timeZoneName: 'fohy' };

miverina { local: eventTime.toLocaleString(navigator.language, options), tanjona: targetTime.toLocaleString(navigator.language, safidy) }; }

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

console.log(schedule.local); // 5 Mar 2026 amin'ny 15:00 EST

console.log(schedule.target); // 5 Mar 2026 amin'ny 20:00 GMT

Miaraka amin'ny Moment dia tsy maintsy mamaritra mazava ny tady endrika ho an'ny tadin-daty vokatra. Na inona na inona toerana misy ny mpampiasa na toerana misy azy, ny fotoanan'ny hetsika dia halamina ho 5 Mar 2026, amin'ny 3:00:00.pm EST. Ary koa, tsy mila manipy fanavahana mazava isika. Raha misy tady tsy mety alefa mankany amin'ny Temporal.Instant.from, Temporal dia hanipy ny exception ho antsika. Ny zavatra iray tokony homarihina dia na dia amin'ny famakafakana henjana aza, ny dikan-teny Moment dia mbola malefaka kokoa. Mitaky ny fe-potoana fanonerana amin'ny faran'ny tady ny temporal. Tokony homarihinao ihany koa fa satria mampiasa navigator.language izahay, ity code ity dia tsy mandeha afa-tsy amin'ny tontolon'ny navigateur, satria tsy voafaritra ao amin'ny tontolo Node.js ny navigator. Ny fampiharana Temporal dia mampiasa ny toerana misy ny navigateur amin'izao fotoana izao (navigator.language), noho izany ny mpampiasa dia hahazo ny fotoanan'ny hetsika ho voalamina amin'ny endrika ora eo an-toerana. Any amin'ny faritra en-US dia ny 5 Mar 2026 amin'ny 3:00 hariva EST. Na izany aza, raha any Londres ny mpampiasa, ohatra, dia halamina ho 5 Mar 2026 amin'ny 15:00:00 GMT-5 ny fotoanan'ny hetsika. Famintinana

Action Moment.js Temporal Fotoana ankehitriny fotoana () Temporal.Now.zonedDateTimeISO() Famaritana ny ISO fotoana (str) Temporal.Instant.from(str) Ampio fotoana .add(7, 'andro') (miova) .add({ andro: 7 }) (zavatra vaovao) Fahasamihafana .diff(hafa, 'ora') .hatramin'ny(hafa).ora Faritra ora .tz('Zone/Anarana') .withTimeZone('Zone/Anarana')

Raha vao jerena dia mety ho hafa kely ny fahasamihafana (ary amin'ny toe-javatra Temporal, indraindray be verbose kokoa ary henjana kokoa), saingy misy tombony lehibe maromaro amin'ny fampiasana Temporal noho ny Moment.js:

Ny hoe mibaribary kokoa dia midika fa kely kokoa ny tsy ampoizina sy ny bibikely tsy ampoizina. Mety ho toa malefaka kokoa ny fotoana, saingy misy ny "fanantenana", izay mety hiteraka daty diso indraindray. Raha manome zavatra tsy mety ny Temporal dia miteraka hadisoana izany. Raha mandeha ny kaody dia fantatrao fa manana daty manan-kery ianao. Ny fotoana dia afaka manampy habe lehibe amin'ny fonon'ny fampiharana, indrindra raha mampiasa ny fonosan'ny zona fotoana ianao. Tsy manampy na inona na inona ny Temporal (rehefa alefa ao amin'ny navigateur kendrenao). Ny tsy fiovaovana dia manome anao fahatokiana fa tsy ho very na hanodina angon-drakitra mihitsy ianao rehefa manao ny fiovan'ny daty sy ny asa. Fanehoana fotoana samihafa (Instant, PlainDateTime, ZonedDateTime) miankina amin'ny zavatra takinao, izay i Moment dia fonosina manodidina ny famantaranandro UTC foana. Ny Temporal dia mampiasa ny Intl APIs amin'ny fandrafetana daty, izay midika fa afaka manana fandrafetana eo an-toerana ianao nefa tsy mila mamaritra mazava ny mari-pamantarana.

Fanamarihana momba ny Polyfill Araka ny voalaza teo aloha dia misy polyfill Temporal misy, zaraina ho fonosana npm antsoina hoe @js-temporal/polyfill. Raha te hampiasa ny Temporal ianao anio, dia mila ity polyfill ity ianao hanohanana ireo navigateur toa an'i Safari izay mbola tsy nandefa ny API. Ny vaovao ratsy amin'ity dia hanampy amin'ny haben'ny fonosanao. Ny vaovao tsara dia mbola manampy latsa-danja kokoa noho ny vanim-potoana na vanim-potoana. Ity misy fampitahana ny haben'ny fonosana araka ny tatitra nataon'ny Bundlephobia.com, tranonkala iray manolotra fampahalalana momba ny haben'ny fonosana npm (tsindrio ny anaran'ny fonosana tsirairay raha te hahita ny famakafakana Bundlephobia):

Package Minified Minified & gzipped @js-temporal/polyfill 154.1 kB 44.1 kB fotoana 294.4 kB 75.4 kB fotoana-faritra 1 MB 114.2 kB

Ny polyfill ihany koa dia nanana olana ara-tantara momba ny fampiasana fahatsiarovana, ary amin'ny fotoana anoratana dia heverina fa ao amin'ny fanjakana alpha izy io. Noho izany, mety tsy te hampiasa azy io amin'ny famokarana ianao mandra-pahatongany ho matotra kokoa. Ny vaovao tsara hafa dia antenaina fa tsy hilaina ela kokoa ny polyfill (raha tsy hoe mila manohana navigateur taloha ianao, mazava ho azy). Tamin'ny fotoana nanoratana dia nalefa tao amin'ny Chrome, Edge ary Firefox ny Temporal. Mbola tsy vonona ao amin'ny Safari izy io, na dia toa azo alaina miaraka amin'ny sainam-pandrosoana amin'ny Preview Technology farany.

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