JavaScriptov Date objekt prepisan je iz Jave 1995. godine. Java je ukinula ekvivalentne API-je 1997. JavaScript developerzi već gotovo 30 godina zaobilaze Dateove dizajnerske mane.
Specifikacija ECMAScript 2026 napokon to mijenja. Temporal API — jedan od najduže razvijanih TC39 prijedloga ikada — dosegao je Stage 4 i dolazi kao standardni dio jezika. Dostupan u Node 22+ i modernim preglednicima, Temporal je potpuna zamjena za Date koja ispravno rukuje vremenskim zonama, kalendarima, aritmetikom i formatiranjem.
Što Temporal zapravo jest
Temporal pruža nepromjenjive, vremenski-zonski svjesne primitive za datum i vrijeme kao prvoklasne jezične značajke. Umjesto greškom sklonog new Date() obrasca, developerzi rade s objektima dizajniranim za specifične vremenske koncepte.
Temporal.Now.zonedDateTimeISO() vraća trenutni trenutak s priloženom informacijom o vremenskoj zoni. Temporal.Instant predstavlja strojni vremenski pečat. Temporal.PlainDate rukuje kalendarskim datumima bez vremena. Temporal.ZonedDateTime povezuje određeni trenutak s određenom vremenskom zonom koristeći potpunu IANA bazu vremenskih zona. Temporal.Duration predstavlja vremenske raspone s pravilnom aritmetikom koja ispravno rukuje mjesecima i danima — nešto što Date nikada nije mogao.
Ključno poboljšanje je nepromjenjivost. Svaka Temporal operacija vraća novi objekt umjesto da mijenja postojeće stanje, eliminirajući čitavu kategoriju grešaka.
Zašto je trebalo devet godina
Rukovanje vremenskim zonama iznimno je teško. Inženjeri iz Bloomberga, Igalije, Googlea i Microsofta proveli su gotovo desetljeće pregovarajući o specifikaciji koja ispravno rukuje svakim rubnim slučajem: prijestupnim sekundama, prijelazima ljetnog/zimskog vremena, kalendarskim sustavima izvan gregorijanskog i povijesnim promjenama vremenskih zona.
TC39 supredsjedavajući, Rob Palmer, sažeo je problem: “Ograničenja Datea natjerala su oslanjanje na velike biblioteke trećih strana.” Biblioteke poput moment.js, date-fns i Luxon postoje upravo zato što je Date bio neadekvatan. Temporal ne čini te biblioteke trenutno zastarjelima, ali eliminira potrebu za njima u novim projektima.
Što još dolazi u ES2026
Temporal je glavna značajka, ali ES2026 također uključuje Math.sumPrecise za precizno zbrajanje pomičnog zareza i poboljšanja statičke import sintakse. To su manje promjene, ali trend je jasan: JavaScript nastavlja rješavati temeljne jezične nedostatke koji postoje od njegovih najranijih dana.
Put migracije i praktični savjeti
Temporal radi zajedno s Dateom bez ikakvih razarajućih promjena. Možete ga početi koristiti u novim projektima već danas bez diranja postojećeg koda koji ovisi o Dateu.
Za nove projekte, Temporal bi trebao biti zadani izbor. Za postojeće kodne baze, biblioteke poput date-fns već planiraju pozadinske sustave temeljene na Temporal-u. Put migracije je postupan: počnite s formatiranjem datuma i konverzijom vremenskih zona u novim modulima, zamijenite Date konstruktore Temporal ekvivalentima u područjima s najviše grešaka, a razmislite o uklanjanju moment.js iz popisa ovisnosti kada Temporal pokrije sve slučajeve koje vaš projekt stvarno treba.
Šira slika
Evolucija JavaScripta u pravi odrasli jezik nadilazi Temporal. Isti ES2026 ciklus koji popravlja rukovanje datumima također dodaje bolju numeričku preciznost i poboljšano učitavanje modula. Jedna od najstarijih bolnih točaka jezika konačno je nestala — a jezik se kreće prema vrsti standardne biblioteke koju developerzi žele desetljećima.
Ako pišete JavaScript i ikad su vas ugrizle greške vremenskih zona, pomaci ljetnog vremena ili pogreške pomaka mjeseci: ta kategorija grešaka sada je spriječiva na razini jezika. Temporal je dostupan u Node 22 i svakom modernom pregledniku već danas. Počnite ga koristiti.
Povezana područja
Savjetodavna područja vezana uz ovu temu
Ova su područja rada usklađena s temom članka i daju čišći prijelaz od edukativnog sadržaja do konkretne implementacije.
Nastavite čitati
Povezani članci
Prvo po zajedničkim kategorijama, a zatim po najjačem preklapanju u tagovima.