Úvod do dátumov UTC
JavaScript má množstvo funkcií, ktoré sa zaoberajú časom UTC, ale čo je čas UTC? Podľa amerického observatória Navel je čas UTC „koordinovaný svetový čas“, koordinovaná civilná časová stupnica „udržiavaná časovými laboratóriami po celom svete ... určovaná pomocou vysoko presných atómových hodín“. Je to približne to isté ako greenwichský stredný čas (GMT), ale je to presnejšie. Niekoľko krajín, napríklad Maroko, Island a Mali; používať UTC priamo ako svoj civilný čas. V zime je UTC v Spojenom kráľovstve civilným obdobím. Americký občiansky čas je určený stanoveným počtom hodín, ktoré sa započítavajú od UTC. Napríklad Arizona (ktorá neudržiava letný čas) je vždy UTC + 7. Peking, čínske časové pásmo je UTC-8 (použijeme to v našich príkladoch nižšie).

Väčšina metód jazyka JavaScript má ekvivalentnú metódu, ktorá sa zaoberá časom UTC a nie miestnym časom. Napríklad getHours () vracia hodinu v miestnom čase, zatiaľ čo getUTCHours () vracia hodinu v čase UTC. Pomocou objektu toLocaleString () môžete získať objekt Date v ľudskej čitateľnej forme vzhľadom na miestny čas a pomocou nástroja toUTCString () vo vzťahu k UTC. Objekt JavaScriptu má dokonca metódu s názvom UTC. Metóda UTC () je statická metóda používaná na prevod dátumu v špecifickom formáte na milisekundy od 1. januára 1970 (relatívne k UTC). Potom môžete pomocou konštruktora Date () vytvoriť objekt Date s touto hodnotou.

Napríklad Čína oznámila, že slávnostné otvorenie olympijských hier v roku 2008 sa uskutoční 8. augusta 2008 o 20:08 hod. Môžeme použiť JavaScript UTC () metódu zistiť, kedy je to v miestnom čase.

odchýlka var = -8; // posun od UTC
var luckyday = new Date (Date.UTC (2008,7,8, (20 + posun), 8);
document.write („Olympijské hry 2008 sa začínajú o“ + luckyday.toUTCString ());
document.write („V miestnom čase je toto“ + luckyday.toLocaleString ())

Poznámka: Vo vyššie uvedenom príklade som konvertoval z pekinského času na UTC pridaním offsetu z UTC ("-8") do pekinského času - preto argument 4 z Date.UTC znie "(20 + offset)" vyššie.

Ak máte vo svojom prehliadači k dispozícii JavaScript, môžete tu vidieť ukážku tohto kódu naživo.


REFERENCIE

Date.UTC ( rok, mesiac [, deň, [hodina, [minúty, [sekundy, [milisekundy]]]]]])

prevádza daný dátum na milisekundy od 1. januára 1970.

Poznámka: všetky argumenty sú číslice. Ako vždy v jazyku JavaScript, mesiac 0 je január. Ak je akýkoľvek argument iný ako rok pre číslo, ktoré predstavuje, väčšie alebo menšie ako je možné, použije sa na ovplyvnenie nasledujúceho väčšieho argumentu - napríklad mesiac 13 sa interpretuje ako február nasledujúceho roka a mesiac -2 sa interpretuje ako november predchádzajúceho roka.

SOURCE

Námorné observatórium USA. „Čo je univerzálny čas?“ 30. októbra 2003. Námorné observatórium USA, oddelenie astronomických aplikácií. 6. júla 2007.