Dandani aniaman a kita ti aplikasion a naisurat iti JavaScript ket agtrabaho kadagiti oras wenno petsa iti sumagmamano a kapasidad. Idi damo, daytoy ket limitado iti naibangon a Petsa nga API. Daytoy nga API ket mangiraman ti batayan a panagandar, ngem medyo limitado iti no ania ti maaramidanna. Dagiti maikatlo a partido a biblioteka a kas ti Moment.js, ken dagiti kalpasanna a naibangon nga API a kas dagiti Intl API ken ti baro a Temporal API, ket mangnayon ti dakdakkel nga amang a kinalukneng iti panagtrabaho kadagiti oras ken petsa. Ti Panagpangato Ken Panagtinnag Ti Kanito.js Ti Moment.js ket maysa a biblioteka ti JavaScript nga addaan kadagiti nabileg a utilidad para iti panagtrabaho kadagiti oras ken petsa. Daytoy ket mangiraman kadagiti awan a tampok manipud iti batayan nga API ti Petsa, a kas ti panagmanipula ti sona ti oras, ken mangaramid kadagiti adu a gagangay nga operasion a nasimsimple. Ti kanito ket mangiraman pay kadagiti panagandar para iti panagpormat kadagiti petsa ken oras. Nagbalin dayta a nasaknap a maus-usar a libraria iti adu a nadumaduma nga aplikasion. Nupay kasta, adda met bingay ti Moment kadagiti isyu. Daytat’ dakkel a libraria, ken mabalin a mangnayon iti dakkel iti kadakkel ti bundle ti maysa nga aplikasion. Gapu ta saan a suportaran ti library ti tree shaking (maysa a tampok dagiti moderno a bundlers a makaikkat kadagiti saan a nausar a paset dagiti library), nairaman ti intero a Moment library uray no usarem laeng ti maysa wenno dua kadagiti functionna. Ti sabali pay nga isyu iti Moment ket ti kinapudno a dagiti banag a parnuayenna ket mabaliwan. Ti panagayab kadagiti sumagmamano a panagandar iti maysa a banag ti Moment ket addaan kadagiti epekto ken mangbalbaliw ti pateg dayta a banag. Mabalin nga agtungpal daytoy iti di ninamnama a kababalin wenno bug. Idi 2020, inkeddeng dagiti mangmantener iti Moment nga ikabil ti libraria iti maintenance mode. Awan ti baro a panagparang-ay ti tampok a maar-aramid, ken dagiti mangmantener ket isingasingda a saan a mausar daytoy para kadagiti baro a proyekto. Adda dagiti dadduma pay a biblioteka ti petsa ti JavaScript, kas iti date-fns, ngem adda baro a player iti ili, maysa nga API a naibangon a direkta iti JavaScript: Temporal. Daytoy ket baro a pagalagadan a mangpunno kadagiti abut ti orihinal a Date API ken kasta met a mangrisut iti sumagmamano kadagiti limitasion a masarakan iti Moment ken dadduma pay a biblioteka. Ania ti Temporal? Ti Temporal ket baro nga oras ken petsa nga API a mainayon iti pagalagadan ti ECMAScript, a mangikeddeng ti moderno a JavaScript. Manipud idi Marso 20266, daytoy ket nakadanon iti Yugto 4 ti proseso ti TC39 (ti komite a mangimatmaton kadagiti singasing ken panaginayon iti pagsasao ti JavaScript), ken mairaman iti sumaganad a bersion ti espesipikasion ti ECMAScript. Naipatungpal daytoy iti sumagmamano a browser: Chrome 144+ ken Firefox 139+, a manamnama a sumaruno ti Safari iti mabiit. Ti polyfill ket magun-od pay para kadagiti saan a nasuportaran a browser ken Node.js. Ti Temporal API ket mangpartuat kadagiti banag a, sapasap, mangibagi kadagiti kanito iti panawen. Dagitoy ket mabalin nga amin-tiempo ken petsa a selio iti naited a sona ti oras, wenno mabalin a sapasap a pagarigan ti oras ti “wall clock” nga awan ti ania man a sona ti oras wenno impormasion ti petsa. Sumagmamano kadagiti kangrunaan a tampok ti Temporal ket mairaman ti:

Panawen nga addaan wenno awanan kadagiti petsa.Ti Temporal a banag ket mabalin a mangibagi iti espesipiko nga oras iti espesipiko a petsa, wenno oras nga awan ti aniaman nga impormasion ti petsa. Mabalin met nga irepresentar ti espesipiko a petsa, nga awan ti orasna. Suporta ti sona ti oras.Dagiti temporal a banag ket naan-anay nga ammoda ti sona ti oras ken mabalin a mabaliwan iti ballasiw dagiti nadumaduma a sona ti oras. Ti kanito ket mangsuporta kadagiti sona ti oras, met, ngem daytoy ket agkasapulan ti kanayonan a biblioteka ti sona ti oras-panawen. Immutability.Apaman a naparsua ti Temporal object, saan a mabalin a mabaliwan. Dagiti panagbalbaliw ti aritmetika ti oras wenno sona ti oras ket saan a mangbalbaliw ti naibatay a banag. Imbes ketdi, mangpataudda iti baro a Temporal object. 1-based indexing.Ti gagangay a taudan dagiti bug iti Date API (ken kasta met iti Moment) ket dagiti bulan ket zero-indexed. Kayatna a sawen a ti Enero ket bulan 0, imbes a bulan 1 kas maawatantayo amin iti pudno a biag. Ti temporal ket mangtarimaan daytoy babaen ti panagusar ti 1-based nga indeks — ti Enero ket bulan 1. It’s built into the browser.Gapu ta ti Temporal ket maysa nga API iti browser a mismo, awan ti mainayonna iti kadakkel ti bundle ti aplikasionmo.

Napateg met a laglagipen a saan a pumanaw ti Date API. Bayat a ti Temporal ket mangsukat iti daytoy nga API, daytoy ket saan a maikkat wenno saanen a maus-usar. Adu nga aplikasion ti agrupsa no kellaat nga ikkaten dagiti browser ti Date API. Nupay kasta, laglagipen met a ti Moment ket maibilang itan a legacy project iti maintenance mode. Iti nabati nga artikulo, kitaentayo ti sumagmamano a “resipe” para iti panangi-migrate iti Moment-based code iti baro a Temporal API. Rugiantayo ti ag-refactor! Panagpartuat Kadagiti Bambanag ti Petsa Ken Oras Sakbay a manipularentayo dagiti petsa ken oras, masapul a mangparnuaytayo kadagiti banag a mangibagi kadagitoy. Tapno mangpartuat ti banag ti Kanito a mangibagi ti agdama a petsa ken oras, usaren ti panagandar ti kanito. const ita = kanito (); console.log (ita); // Kanito <2026-02-18T21:26:29-05:00>

Daytoy a banag ket mabalin itan a mapormat wenno manipularen no kasapulan.

// agbaliw iti UTC //pakdaar: Daytoy ket mangbalbaliw ti banag ti Moment ken mangikabil daytoy iti UTC a kasasaad! konsola.log (ita.utc ()); // Kanito <2026-02-19T02:26:29Z>

// mangimaldit ti napormat a kuerdas - laglagipen nga agus-usar daytoy ti oras ti UTC ita console.log (ita.format ('MM / DD / YYYY hh: mm: ss a')); // 02/19/2026 02:27:07 ti bigat

Ti kangrunaan a banag a laglagipen maipapan iti Moment ket ti maysa a banag ti Moment ket kanayon a mangiraman ti impormasion maipapan iti oras ken petsa. No kasapulam laeng ti agtrabaho kadagiti impormasion ti oras, daytoy ket kadawyan a nasayaat, ngem daytoy ket mabalin a mangpataud ti di ninamnama a kababalin kadagiti kasasaad a kas ti Oras ti Panagsalbar ti Aldaw wenno dagiti bisiesto a tawen, a ti petsa ket mabalin nga addaan iti epekto kadagiti panagkalkula ti oras. Ad-adda a nalaka a maibagay ti temporal. Mabalinmo ti mangpartuat ti banag a mangibagi ti agdama a petsa ken oras babaen ti panagpartuat ti banag a Temporal.Instant. Irepresentar daytoy ti maysa a punto ti panawen a naikeddeng babaen ti panawen manipud idi “ti panawen” (tengnga ti rabii UTC idi Enero 1, 1970). Mabalin a tuktukoyen ti temporal daytoy a kanito iti panawen nga addaan iti nanosecond-level a kinaeksakto. const ita = Temporal.Ita.instant ();

// kitaen dagiti raw nanoseconds manipud idi epoch console.log (ita.epochNanosegundos); // 1771466342612000000n nga

// pormat para iti UTC console.log (ita.iti Kuerdas ()); // 2026-02-19T01:55:27.844Z nga aldaw

// pormat para iti partikular a sona ti oras console.log (ita.toString ({ Sona ti oras: 'Amerika / New_York' })); // 2026-02-18T20:56:57.905-05:00 nga aramid

Temporal.Dagiti instant a banag ket mabalin pay a maparsua para iti espesipiko nga oras ken petsa babaen ti panagusar ti manipud iti estatiko a pamay-an.

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

// Ipormat ti instant iti lokal a sona ti oras. Paliiwenyo ta daytoy laeng ti mangkonkontrol // ti panagpormat - saan a mangbalbaliw ti banag a kas ti ar-aramiden ti moment.utc. console.log (myInstant.toString ({ Sona ti oras: 'Amerika / New_York' })); // 2026-02-18T21:10:00-05:00 nga aldaw

Mabalinmo pay ti mangpartuat kadagiti sabali a kita ti Temporal a banag, a mairaman ti:

Temporal.PlainDate: Petsa nga awan ti impormasion ti oras. Temporal.PlainTime: Oras nga awan ti impormasion ti petsa. Temporal.ZonedDateTime: Ti petsa ken oras iti espesipiko a sona ti oras.

Tunggal maysa kadagitoy ket addaan iti manipud a pamay-an a mabalin a maawagan babaen ti maysa a banag a mangibaga ti petsa ken/wenno oras, wenno ti kuerdas ti petsa a parse. // Maysa laeng a petsa const ita nga aldaw = Temporal.PlainDate.manipud ({ tawen: 2026, . bulan: 2, // note nga us-usarenmi ti 2 para iti Pebrero aldaw: 18 }); console.log (ita nga aldaw.toString ()); // 2026-02-18 nga aldaw

// Panawen laeng const Oras ti pangngaldaw = Temporal.PlainTime.manipud ({ oras: 12 }); console.log (Oras ti pangngaldaw.toString ()); // 12:00:00 nga oras

// Ti petsa ken oras iti sona ti oras ti Daya ti E.U const dueAt = Temporal.Nasonado nga Oras ti Petsa.manipud ({ sona ti oras: 'Amerika/New_York', . tawen: 2026, . bulan: 3, 2019. aldaw: 1, 2019. oras: 12, 12 . minuto: 0, . maikadua: 0 }); console.log (dueAt.iti Kuerdas ()); // 2026-03-01T12:00:00-05:00[Amerika/Baro_York].

Panag-parsing Sinakupmi ti programatiko a panagparnuay iti impormasion ti petsa ken oras. Ita, kitaentayo ti parsing. Ti panagpars ket maysa a lugar a ti Moment ket ad-adda a nalaka a maibagay ngem ti naibangon a Temporal API. Mabalinmo nga i-parse ti kuerdas ti petsa babaen ti panangipasa iti daytoy iti moment function. Iti maymaysa nga argumento, namnamaen ti Moment ti kuerdas ti petsa ti ISO, ngem mabalinmo nga usaren dagiti alternatibo a pormat no mangipaayka ti maikadua nga argumento a mangibaga ti pormat ti petsa a maus-usar.

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

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

console.log (napormat nga Petsa); // Kanito <2026-02-21T09:00:00-05:00>

Kadagiti daan a bersion, ti Moment ket mangaramidto ti kasayaatan a pattapatta tapno agparpar ti ania man nga arbitrariamente a napormat a kuerdas ti petsa. Mabalin nga agtungpal daytoy kadagiti di mapakpakadaan a resulta. Kas pagarigan, Pebrero 2 kadi wenno Marso 3 ti 02-03-2026? Gapu iti daytoy a rason, dagiti baro a bersion ti Moment ket mangiparang ti nalatak a pakdaar ti pannakailaksid no daytoy ket naawagan nga awan ti ISO a napormat a kuerdas ti petsa (malaksid no ti maikadua nga argumento nga addaan iti tarigagayan a pormat ket naited pay). Ti temporal ket mangpars laeng ti espesipiko a napormat a kuerdas ti petsa. Ti kuerdas ket masapul a maitunos iti pormat ti ISO 8601 wenno ti ekstensionna, RFC 9557. No ti saan a maitunos a kuerdas ti petsa ket maipasa iti maysa manipud a pamay-an, ti Temporal ket mangipuruak ti RangeError.

// Panagusar ti RFC 9557 a kuerdas ti petsa const myDate = Temporal.Instant.manipud ('2026-02-21T09:00:00-05:00 [Amerika / Baro_York]'); console.log (myDate.toString ({ Sona ti oras: 'Amerika / New_York' })); // 2026-02-21T09:00:00-05:00 nga aldaw

// Panagusar ti di ammo a petsa a kuerdas const sabali nga Petsa = Temporal.Instant.manipud ('2/21/26 9:00:00'); // RangeError: Temporal error: Di umiso a karakter bayat ti panagpars ti pateg ti tawen.

Dagiti eksakto a kasapulan ti kuerdas ti petsa ket agpannuray no ania a kita ti Temporal a banag ti parparnuaymo. Iti pagarigan iti ngato, ti Temporal.Instant ket kasapulanna ti naan-anay nga ISO8601 wenno RFC 9557 a kuerdas ti petsa a mangibaga ti petsa ken oras nga addaan iti offset ti sona ti oras, ngem mabalinmo pay ti mangpartuat kadagiti banag ti PlainDate wenno PlainTime babaen ti panagusar laeng ti subgrupo ti pormat ti petsa. const myDate = Temporal.Plain nga Petsa.manipud ('2026-02-21'); console.log (Petsako.iti Kuerdas ()); // 2026-02-21 nga aldaw

const ti Orasko = Temporal.PlainTime.manipud ('09:00:00'); console.log (tiOrasko.iti Kuerdas ()); // 09:00:00 nga oras

Panunoten a dagitoy a kuerdas ket masapul pay laeng a maitunos iti manamnama a pormat, ta no saan ket maipuruak ti biddut.

// Panagusar ti saan a maitunos a kuerdas ti oras. Dagitoy amin ket mangipuruak iti RangeError. Temporal.PlainTime.manipud ('9:00'); Temporal.PlainTime.manipud ('9:00:00 AM');

Pro tip: Panangtaming kadagiti saan nga ISO a kuerdasGapu ta ipangpangruna ti Temporal ti kinamapagtalkan, dina padasen a pugtuan ti pormat ti kuerdas a kas iti 02-01-2026. No ti taudan ti datosmo ket agus-usar kadagiti kasta a kuerdas, kasapulam ti agaramid ti sumagmamano a panagmanipula ti kuerdas tapno maurnos manen dagiti pateg iti maysa a kuerdas ti ISO a kas ti 2026-02-01 sakbay a padasem nga usaren daytoy iti Temporal.

Panagpormat Apaman nga addaanka iti banag a Moment wenno Temporal, kayatmo la ketdi a pagbalinen dayta iti napormat a kuerdas iti maysa a punto. Daytoy ket maysa nga instance a ti Moment ket medio ad-adda a terse. Awagam ti object’s format method nga addaan iti kuerdas dagiti token a mangiladawan iti kayat a pormat ti petsa. const petsa = kanito ();

console.log (petsa.format ('MM / DD / YYYY')); // 02/22/2026 nga aldaw

console.log (petsa.format ('MMMM Aramiden YYYY, h: mm: ss a')); // Pebrero 22nd 2026, 8:18:30 ti rabii

Iti sabali a bangir, kalikaguman ti Temporal nga agbalinka a medio ad-adda a berbose. Dagiti temporal a banag, a kas ti Instant, ket addaan iti toLocaleString a pamay-an nga umawat kadagiti nadumaduma a pagpilian ti panagpormat a naikeddeng a kas dagiti tagikua ti maysa a banag.

const petsa = Temporal.Ita.instant ();

// nga awan ti argumento, maalatayo ti default a pormat para iti agdama a lokal console.log (petsa.itiLokal a Kuerdas ()); // 2/22/2026, 8:23:36 PM (no ipapan ti lokal ti en-US)

// mangipasa kadagiti pagpilian ti panagpormat tapno mangpataud ti kostumbre a kuerdas ti pormat console.log (petsa.itiLokaleString ('ilo-US', { bulan: 'atiddog', . aldaw: 'numeriko', . tawen: 'numeriko', . oras: '2-digit', . minuto: '2-digit'. })); // Pebrero 22, 2026 iti 8:23 PM

// ipasa laeng dagiti tay-ak a kayatmo iti kuerdas ti pormat console.log (petsa.itiLokaleString ('ilo-US', { bulan: 'ababa', . aldaw: 'numeriko'. })); // Pebrero 22

Ti temporal a panagpormat ti petsa ket aktual nga agus-usar ti Intl.DateTimeFormat API (a nalaka a magun-od kadagiti moderno a browser) iti baba ti hood. Kayatna a sawen a mabalinmo ti mangpartuat ti mausar manen a banag ti DateTimeFormat nga addaan kadagiti kostumbre a pagpiliam iti panagpormat, kalpasanna ipasa dagiti banag ti Temporal iti pamay-anna ti pormat. Gapu iti daytoy, dina suportaran dagiti custom date formats a kas iti ar-aramiden ti Moment. No kasapulam ti maysa a banag a kas ti 'Q1 2026' wenno dadduma pay nga espesial a panagpormat, mabalin a kasapulam ti sumagmamano a kostumbre a kodigo ti panagpormat ti petsa wenno makadanon para iti maikatlo a partido a biblioteka. const formatter = baro nga Intl.PetsaOrasFormat ('ilo-US', { bulan: '2-digit', . aldaw: '2-digit', . tawen: 'numeriko'. });

const petsa = Temporal.Ita.instant (); console.log (formater.pormat (petsa)); // 02/22/2026 nga aldaw

Nasimsimple nga isurat dagiti Moment’s formatting token, ngem saan a locale-friendly dagitoy. Ti pormat ket mangikuerdas kadagiti “hard code” a banag a kas iti bulan/aldaw nga urnos. Ti pagimbagan ti panagusar ti maysa a banag ti panagisaad, a kas ti ar-aramiden ti Temporal, ket daytoy ket automatiko a makibagay iti ania man a naited a lokal ken agusar ti umno a pormat. const petsa = Temporal.Ita.instant ();

const formatDagiti Pagpilian = { . bulan: 'numeriko', . aldaw: 'numeriko', . tawen: 'numeriko'. };

console.log (petsa.toLocaleString ('il-US', dagiti Pagpilian ti pormat)); // 2/22/2026 nga aldaw

console.log (petsa.toLocaleString ('il-GB', dagiti Pagpilian ti pormat)); // 22/02/2026 nga aldaw

Dagiti kalkulasion ti petsa Iti adu nga aplikasion, kasapulam nga agngudo a mangaramid iti sumagmamano a kalkulasion iti maysa a petsa. Mabalin a kayatmo ti mangnayon wenno mangikkat kadagiti yunit ti oras (aldaw, oras, segundo, kdpy.). Kas pagarigan, no addaanka iti agdama a petsa, mabalin a kayatmo nga ipakita iti agar-aramat ti petsa 1 a lawas manipud ita. Dagiti banag ti kanito ket addaan kadagiti pamay-an a kas ti panagnayon ken panagikkat a mangaramid kadagitoy nga operasion. Dagitoy a panagandar ket mangala ti pateg ken maysa a yunit, kas pagarigan: add(7, 'aldaw'). Ti maysa a napateg unay a nagdumaan ti Kanito ken Temporal, nupay kasta, ket no maaramid dagitoy a panagkalkula ti petsa, ti naibatay a banag ket mabaliwan ken ti orihinal a pategna ket mapukaw. const ita = kanito ();

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

const sumaruno a Lawas = ita.nayon (7, 'aldaw'); console.log (sumaruno a Lawas); // Kanito <2026-03-03T20:08:36-05:00>

// Gotcha - ti orihinal a banag ket nabaliwan console.log (ita); // Kanito <2026-03-03T20:08:36-05:00>

Tapno maliklikan ti pannakapukaw ti orihinal a petsa, mabalinmo nga awagan ti clone iti banag ti Moment tapno mangpartuat ti kopia. const ita= kanito (); const sumaruno a Lawas = ita.clone (). inayon (7, 'aldaw');

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

console.log (sumaruno a Lawas); // Kanito <2026-03-03T20:12:55-05:00>

Iti sabali a bangir, dagiti Temporal a banag ket di agbaliw. Apaman a nakaaramidka’n iti banag a kas iti Instant, PlainDate, ken dadduma pay, saan a pulos nga agbaliw ti pateg dayta a banag. Dagiti temporal a banag ket addaan met kadagiti pamay-an ti panagnayon ken panagikkat. Ti temporal ket bassit a picky no ania dagiti yunit ti oras a mabalin a mainayon no ania dagiti kita ti banag. Kas pagarigan, dikay’ makainayon kadagiti aldaw iti Instant:

const ita = Temporal.Ita.instant (); const sumaruno a Lawas = ita.nayon ({ aldaw: 7 }); // RangeError: Temporal a biddut: Ti kadakkelan a yunit ket saan a mabalin a yunit ti petsa

Daytoy ket gapu ta dagiti banag ti Instant ket mangibagi ti espesipiko a puntos ti panawen iti UTC ken kalendario-agnostiko. Gapu ta mabalin nga agbaliw ti kaatiddog ​​ti aldaw maibatay kadagiti pagannurotan ti time zone kas iti Daylight Saving Time, daytoy a kalkulasion ket saan a magun-od iti Instant. Mabalinmo, nupay kasta, nga aramiden daytoy nga operasion kadagiti sabali a kita ti banag, a kas ti PlainDateTime: const ita = Temporal.Ita.plainDateTimeISO (); console.log (ita. itiLokale a Kuerdas ()); // 2/24/2026, 8:23:59 ti rabii

const sumaruno a Lawas = ita.nayon ({ aldaw: 7 });

// Panunoten a ti orihinal a PlainDateTime ket agtalinaed a saan a nabaliwan console.log (ita. itiLokale a Kuerdas ()); // 2/24/2026, 8:23:59 ti rabii

console.log (sumaruno a Lawas.toLocaleString ()); // 3/3/2026, 8:23:59 ti rabii

Mabalinmo pay a kalkularen no mano nga oras ti nagbaetan ti dua a Moment wenno Temporal objects. Iti Moment’s diff function, kasapulam ti mangipaay iti yunit para iti granularity, ta no saan, isublina ti nagdumaan iti milisegundos. const petsa1 = kanito ('2026-02-21T09:00:00'); const petsa2 = kanito ('2026-02-22T10: 30:00');

console.log (petsa2.diff (petsa1)); // 91800000 nga

console.log (petsa2.diff (petsa1, 'aldaw')); // 1. nga

Tapno maaramid daytoy iti maysa a Temporal a banag, mabalinmo nga ipasa ti sabali a Temporal a banag kadagiti aginggana wenno manipud a pamay-anna. Daytoy ket mangisubli ti maysa a banag ti Temporal.Duration a naglaon ti impormasion maipapan ti panagdumaduma ti oras. Ti banag ti Kapaut ket addaan kadagiti tagikua para iti tunggal maysa a paset ti panagdumaduma, ken mabalin pay a mangpataud ti ISO 8601 a kuerdas ti kapaut a mangibagi ti panagdumaduma ti oras.

const petsa1 = Temporal.Plain nga Oras ti Petsa.manipud ('2026-02-21T09:00:00'); const petsa2 = Temporal.Plain nga Oras ti Petsa.manipud ('2026-02-22T10:30:00');

// ti largestUnit ket mangibaga ti kadakkelan a yunit ti oras a maibagi // iti kalkulasion ti kapaut const diff = petsa2.since (petsa1, { kadakkelan aUnit: 'aldaw' });

konsola.log (diff.aldaw); // 1. nga

konsola.log (diff.oras); // 1. nga

konsola.log (diff.minuto); // 30 nga

konsola.log (diff.toString ()); // P1DT1H30M nga // (ISO 8601 kapaut a kuerdas: 1 nga aldaw, 1 nga oras, 30 a minuto)

Panangidilig Kadagiti Petsa Ken Oras Ti Moment ken Temporal ket agpada a mangipalubos kenka a mangidilig kadagiti petsa ken oras tapno maikeddeng no ania ti umay sakbay ti sabali, ngem mangala kadagiti nadumaduma nga asidegan iti API. Ti Moment ket mangipaay kadagiti pamay-an a kas ti isBefore, isAfter, ken isSame tapno maipada ti dua a banag ti Moment. const petsa1 = kanito ('2026-02-21T09:00:00'); const petsa2 = kanito ('2026-02-22T10: 30:00');

console.log (petsa1.ketSakbay (petsa2)); // pudno

Ti temporal ket agus-usar ti estatiko a pamay-an ti panagidilig tapno mangaramid ti panagidilig ti nagbaetan ti dua a banag ti agpada a kita. Daytoy ket mangisubli ti -1 no ti umuna a petsa ket umay sakbay ti maikadua, 0 no agpapadada, wenno 1 no ti umuna a petsa ket umay kalpasan ti maikadua. Ti sumaganad a pagarigan ket mangipakita no kasano ti mangidilig ti dua a banag ti PlainDate. Agpada a dagiti argumento iti Temporal.PlainDate.compare ket masapul a dagiti banag ti PlainDate.

const petsa1 = Temporal.PlainDate.from ({ tawen: 2026, bulan: 2, aldaw: 24 }); const petsa2 = Temporal.PlainDate.manipud ({ tawen: 2026, bulan: 3, aldaw: 24 });

// ti petsa1 ket umay sakbay ti petsa2, isu a ti -1 console.log (Temporal.PlainDate.idilig (petsa1, petsa2));

// Biddut no padasentayo nga idilig ti dua a banag a nagduduma ti kitada console.log (Temporal.PlainDate.compare (petsa1, Temporal.Ita.instant ())); // TypeError: Temporal a biddut: Dagiti saan nga umiso a tay-ak ti PlainDate ket naited.

Iti partikular, daytoy ket mangaramid a nalaka ti panagurnos ti maysa nga urnos dagiti Temporal a banag a kronolohikal. // Maysa nga urnos dagiti banag ti Temporal.PlainDate dagiti petsa ti const = [ ... ];

// usaren ti Temporal.PlainDate.compare kas ti panagandar ti panangidilig petsa.sort (Temporal.PlainDate.idilig);

Dagiti Panagbalbaliw ti Sona ti Oras Ti kangrunaan a biblioteka ti Moment ket saan a mangsuporta kadagiti panagbalbaliw ti sona ti oras. No kasapulam daytoy a panagandar, kasapulam met nga i-install ti pakete ti moment-timezone. Daytoy a pakete ket saan a pagkintayeg ti kayo, ken gapuna ket mabalin a mangnayon iti dakkel iti kadakkel ti bundle-mo. Apaman a nai-installmo ti moment-timezone, mabalinmo a pagbalinen dagiti banag ti Moment kadagiti nadumaduma a sona ti oras babaen ti pamay-an ti tz. Kas kadagiti dadduma nga operasion ti Moment, daytoy ket mangbalbaliw ti naibataybanag. // Ipagarup nga oras ti Daya ti E.U const ita = kanito (); console.log (ita); // Kanito <2026-02-28T20:08:20-05:00>

// Agbalbaliw iti oras ti Pasipiko. // Napukaw ti orihinal a panawen ti Daya. now.tz ('Amerika / Los_Angeles'); console.log (ita); // Kanito <2026-02-28T17:08:20-08:00>

Ti panagandar ti sona ti oras ket naibangon iti Temporal API no agus-usar ti maysa a banag ti Temporal.ZonedDateTime. Dagitoy a banag ket mairaman ti pamay-an ti withTimeZone a mangisubli ti baro a ZonedDateTime a mangibagi ti isu met laeng a kanito iti oras, ngem iti naikeddeng a sona ti oras. // Manen, ipapan nga oras ti Daya ti E.U const ita = Temporal.Ita.nasonado a PetsaOrasISO (); console.log (ita. itiLokale a Kuerdas ()); // 2/28/2026, 8:12:02 ti rabii EST

// Agbalbaliw iti oras ti Pasipiko const nowPacific = ita.withTimeZone ('Amerika / Los_Angeles'); console.log (ita ti Pasipiko.itiLokal a Kuerdas ()); // 2/28/2026, 5:12:02 ti malem PST

// Ti orihinal a banag ket agtalinaed a saan a nabaliwan console.log (ita. itiLokale a Kuerdas ()); // 2/28/2026, 8:12:02 ti rabii EST

Pakaammo: Dagiti napormat a pateg nga insubli babaen ti toLocaleString ket, kas ipasimudaag ti nagan, agpannuray iti lokal. Ti pagarigan a kodigo ket naaramid iti en-US a lokal, isu a ti pormat ket kastoy: 2/28/2026, 5:12:02 PM PST. Iti sabali a lokal, mabalin a naiduma daytoy. Kas pagarigan, iti en-GB locale, makagun-odka koma iti kas iti 28/2/2026, 17:12:02 GMT-8. Maysa a Pudno a Lubong a Refactoring Ipapantayon a mangbangbangontayo iti app para iti panangiskediul kadagiti pasamak iti ballasiw dagiti time zone. Paset daytoy nga app ket ti maysa a panagandar, ti getEventTimes, a mangala ti ISO 8601 a kuerdas a mangibagi ti oras ken petsa ti pasamak, ti ​​lokal a sona ti oras, ken ti target a sona ti oras. Ti panagandar ket mangpartuat kadagiti napormat nga oras ken petsa a kuerdas para iti pasamak iti agpada a sona ti oras. No ti function ket naikkan iti input string a saan a balido nga oras/petsa a string, mangipuruak daytoy iti biddut. Ania’t orihinal nga implementasion, nga agus-usar ti Moment (kasapulan met ti panagusar ti pakete ti moment-timezone).

import moment manipud iti 'moment-timezone';

function getEventTimes (inputString, Sona ti Oras ti agar-aramat, sona ti Oras ti target) { const pormat ti oras = 'MMM D, YYYY, h: mm: ss a z';

// 1. Mangaramid ti umuna a kanito iti sona ti oras ti agar-aramat const Oras ti pasamak = kanito.tz ( inputString, . moment.ISO_8601, // Namnamaen ti maysa nga ISO 8601 a kuerdas pudno, // Nainget a panagpars userTimeZone ti agar-aramat );

// Mangipuruak ti biddut no ti inputString ket saan a nangibagi ti balido a petsa no (! Oras ti pasamak.ket Balido ()) { throw new Error ('Di umiso a petsa/oras nga input'); } .

// 2. Karkuloen ti target nga oras // KRItikal: Masapul nga ag-clone tayo, wenno agbaliw ti 'eventTime' iti agnanayon! const targetTime = Oras ti pasamak.clone ().tz (targetTimeZone);

agsubli { . lokal: eventTime.format (Format ti oras), . target: targetTime.format (Format ti oras), . }; } .

const schedule = getOras ti Pasamak ( '2026-03-05T15:00-05:00', 'Amerika/New_York', 1999. 'Europa/Londres', . );

console.log (eskediul.lokal); // Mar 5, 2026, 3:00:00 ti malem EST

console.log (iskediul.puntiria); // Mar 5, 2026, 8:00:00 ti rabii GMT

Iti daytoy a pagarigan, agus-usarkami iti manamnama a pormat ti petsa ti ISO 8601, a makatulong a naibangon iti Moment. Us-usarenmi met ti nainget a parsing, kayatna a sawen a saan a padasen ti Moment ti agpugto babaen ti kuerdas ti petsa a saan a maitunos iti pormat. No ti saan nga ISO a kuerdas ti petsa ket maipasa, daytoy ket agresulta iti saan nga umiso a banag ti petsa, ken mangipuruaktayo ti biddut. Kasla agpapada ti langa ti Temporal a pannakaipatungpal, ngem addaan iti sumagmamano a kangrunaan a nagdumaan.

function getEventTimes (inputString, Sona ti Oras ti agar-aramat, sona ti Oras ti target) { // 1. Direkta a parse ti input iti Instant, kalpasanna mangparnuay // a ZonedDateTime iti sona ti agar-aramat. const instant = Temporal.Instant.manipud (inputString); const eventTime = instant.toNasonado nga Oras ti PetsaISO (Sona ti Oras ti agar-aramat);

// 2. Agbalbaliw iti target zone // Daytoy ket automatiko nga agsubli ti BARO a banag; Natalged ti 'eventTime'. const targetTime = Oras ti pasamak.nga addaan itiSona ti Oras (targetTimeZone);

// 3. Pormat babaen ti Intl (naibangon) . dagiti pagpilian ti const = { . tawen: 'numeriko', . bulan: 'ababa', . aldaw: 'numeriko', . oras: 'numeriko', . minuto: '2-digit', . maikadua: '2-digit', . timeZoneName: 'ababa'. };

agsubli { . lokal: eventTime.toLocaleString (nabigator.pagsasao, dagiti pagpilian), . target: targetTime.toLocaleString (nabigator.pagsasao, dagiti pagpilian) }; } .

const schedule = getOras ti Pasamak ( '2026-03-05T15:00-05:00', 'Amerika/New_York', 1999. 'Europa/Londres', . );

console.log (eskediul.lokal); // Mar 5, 2026, 3:00:00 ti malem EST

console.log (iskediul.puntiria); // Mar 5, 2026, 8:00:00 ti rabii ti GMT

Iti Moment, masapul a nalawag nga ikeddengtayo ti kuerdas ti pormat para kadagiti nagbanagan a kuerdas ti petsa. Aniaman ti lokasion wenno lokal ti agar-aramat, kanayon a mapormat dagiti oras ti pasamak a kas Mar 5, 2026, 3:00:00pm EST. Kasta met, saan a kasapulan a nalawag nga ipuruaktayo ti eksepsion. No ti saan nga umiso a kuerdas ket maipasa iti Temporal.Instant.from, ti Temporal ket mangipuruak ti eksepsion para kadatayo. Maysa a banag a maipalagip ket uray no nainget ti panagpars, ad-adda latta a nalaka ti bersion ti Moment. Ti temporal ket kasapulanna ti time zone offset iti ngudo ti kuerdas. Rumbeng met a laglagipem a gapu ta agus-usarkami iti navigator.language, daytoy a kodigo ket agtaray laeng iti aglawlaw ti browser, ta ti nabigator ket saan a naikeddeng iti aglawlaw ti Node.js. Ti Temporal nga implementasion ket agus-usar ti agdama a lokal ti browser (navigator.language), isu nga automatiko a makaala ti agar-aramat kadagiti oras ti pasamak a napormat iti pormat ti lokal nga orasda. Iti en-US locale, daytoy ket Mar 5, 2026, 3:00:00 pm EST. Nupay kasta, no ti agar-aramat ket adda idiay London, kas pagarigan, dagiti oras ti pasamak ket mapormat a kas 5 Mar 2026, 15:00:00 GMT-5. Sumaryo

Aksyon Kanito.js Temporal nga Agdama nga oras kanito () . Temporal.Ita.nasonadoPetsaOrasISO () . Parsing ti ISO kanito(str) . Temporal.Instant.manipud (str) . Mangnayon iti oras .add(7, 'aldaw') (agbalbaliw) . .add({ aldaw: 7 }) (baro a banag) . Pagdumaan .diff(sabali, 'oras') . .manipud(sabali).oras Sona ti oras .tz ('Sona/Nagan') . .withTimeZone ('Sona/Nagan') .

Iti umuna a panangkita, ti panagdumaduma ket mabalin a naiduma bassit (ken iti kaso ti Temporal, no dadduma ad-adu a berbose ken ad-adda a nainget) a sintaksis, ngem adda dagiti sumagmamano a kangrunaan a pagimbagan ti panagusar ti Temporal ngem ti Moment.js:

Ti ad-adda a nalawag kaipapananna ti basbassit a sorpresa ken di nairanta a bug. Mabalin nga agparang nga ad-adda a naasi ti kanito, ngem ramanenna ti “panagpattapatta,” a mabalin nga agresulta no dadduma iti di umiso a petsa. No ikkam ti Temporal iti banag a saan nga umiso, mangipuruak daytoy iti biddut. No agtaray ti kodigo, ammom nga addaanka’n iti balido a petsa. Ti moment ket mabalin a mangnayon ti dakkel a kadakkel iti application’s bundle, partikular no agus-usar ka ti moment-timezone package. Awan ti mainayon ti Temporal (apaman a naipatulod dayta kadagiti target browser-mo). Ti immutability ket mangted kenka ti panagtalek a dika pulos mapukaw wenno isurat ti datos no mangaramidka kadagiti panagbalbaliw ti petsa ken panagpataray. Dagiti nadumaduma a pannakabagi ti oras (Instant, PlainDateTime, ZonedDateTime) depende kadagiti kasapulam, a sadiay ti Moment ket kanayon a maysa a balkot iti aglawlaw ti maysa a selio ti oras ti UTC. Ti Temporal ket agus-usar kadagiti Intl API para iti panagpormat ti petsa, a ti kayatna a sawen ket mabalinmo ti maaddaan iti lokal-a-aware a panagpormat a saan a kasapulan a nalawag nga ikeddeng dagiti token.

Dagiti Pakaammo Iti Polyfill Kas nadakamat itay, adda ti Temporal polyfill a magun-od, a naiwarwaras a kas ti pakete ti npm a napanaganan iti @js-temporal/polyfill. No kayatmo nga usaren ti Temporal ita nga aldaw, kasapulam daytoy a polyfill tapno suportaran dagiti browser a kas iti Safari a saan pay a nangipatulod iti API. Ti dakes a damag iti daytoy ket mangnayon daytoy iti kadakkel ti bundle-mo. Ti naimbag a damag ket basbassit pay laeng ti mainayonna ngem iti moment wenno moment-timezone. Adda ditoy ti panagidilig kadagiti kadakkel ti bundle kas impadamag ti Bundlephobia.com, maysa a website a mangipresenta iti impormasion kadagiti kadakkel ti pakete ti npm (i-klik ti tunggal nagan ti pakete tapno makita ti panaganalisar ti Bundlephobia):

Pakete ti Pakete Minified Minified & na-gzipped @js-temporal/polyfill ti panagpunno 154.1 nga kB 44.1 kB nga kanito 294.4 nga kB 75.4 kB nga kanito-sona ti oras 1 MB nga 114.2 kB nga

Ti polyfill ket historikal pay nga addaan kadagiti sumagmamano nga isyu ti panagaramid iti aglawlaw ti panagusar ti memoria, ken iti panawen ti pannakaisurat, daytoy ket naibilang nga adda iti estado ti alpha. Gapu iti daytoy, mabalin a dikay kayat nga usaren dayta iti produksion agingga a makadanon iti nataengan a kasasaad. Ti sabali pay a naimbag a damag ket sapay koma ta saan unay a kasapulan ti polyfill (malaksid no kasapulam a suportaran dagiti daan a browser, siempre). Iti panawen ti pannakaisurat daytoy, ti Temporal ket naipatulod iti Chrome, Edge, ken Firefox. Saan pay unay a nakasagana iti Safari, nupay agparang a magun-od daytoy nga addaan iti runtime flag iti kaudian a Technology Preview.

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