Introduzione alle date UTC
JavaScript ha una serie di funzioni che si occupano dell'ora UTC, ma che cos'è l'ora UTC? Secondo l'Osservatorio Navel degli Stati Uniti, l'ora UTC è "Coordinated Universal Time", una scala temporale coordinata civile "tenuta dai laboratori del tempo in tutto il mondo ... determinata usando orologi atomici altamente precisi". Questo è approssimativamente lo stesso del Greenwich Mean Time (GMT), ma è più preciso. Un certo numero di nazioni, come il Marocco, l'Islanda e il Mali; usano UTC direttamente come il loro tempo civile. In inverno, UTC è il momento civile per il Regno Unito. L'ora civile degli Stati Uniti è determinata da un determinato numero di ore rispetto all'ora UTC. Ad esempio, l'Arizona (che non mantiene l'ora legale) è sempre UTC + 7. Pechino, il fuso orario cinese è UTC-8 (lo useremo nei nostri esempi seguenti).

La maggior parte dei metodi JavaScript Date hanno un metodo equivalente che si occupa dell'ora UTC piuttosto che dell'ora locale. Ad esempio, getHours () restituisce l'ora nell'ora locale, mentre getUTCHours () restituisce l'ora nell'ora UTC. È possibile ottenere un oggetto Date in forma leggibile dall'uomo in relazione all'ora locale utilizzando toLocaleString () e rispetto a UTC utilizzando toUTCString (). L'oggetto JavaScript Date ha persino un metodo chiamato UTC. Il metodo UTC () è un metodo statico utilizzato per convertire una data in un formato specifico in millisecondi dal 1 ° gennaio 1970 (rispetto a UTC). È quindi possibile utilizzare il costruttore Date () per creare un oggetto Date con questo valore.

Ad esempio, la Cina ha annunciato che le cerimonie di apertura delle Olimpiadi del 2008 si terranno l'8 agosto 2008 alle 20:08. Possiamo usare il metodo UTC () di JavaScript per scoprire quando è in ora locale.

var offset = -8; // offset da UTC
var luckyday = new Date (Date.UTC (2008,7,8, (20 + offset), 8);
document.write ("Le Olimpiadi del 2008 iniziano a" + luckyday.toUTCString ());
document.write ("Questo è l'ora locale" + luckyday.toLocaleString ())

Nota: Nell'esempio sopra, sono passato dall'ora di Pechino all'ora UTC aggiungendo l'offset dall'ora UTC ("-8") all'ora di Pechino - ecco perché l'argomento 4 di Date.UTC legge "(20 + offset)" sopra.

Se hai JavaScript disponibile nel tuo browser, puoi vedere un esempio live di questo codice qui.


RIFERIMENTO

Date.UTC ( anno, mese [, giorno, [ora, [minuti, [secondi, [millisecondi]]]]])

converte la data indicata in millisecondi dal 1 ° gennaio 1970.

Nota: tutti gli argomenti sono cifre. Come sempre in JavaScript, un mese di 0 è gennaio. Se qualsiasi argomento diverso da un anno è un numero maggiore o minore di quello possibile per il valore che rappresenta, viene utilizzato per influire sul successivo argomento più ampio - ad esempio, un mese di 13 viene interpretato come febbraio dell'anno successivo e un mese di -2 viene interpretato come novembre dell'anno precedente.

FONTE

Osservatorio navale degli Stati Uniti. "Cos'è Universal Time?" 30 ottobre 2003. Osservatorio navale statunitense, Dipartimento di applicazioni astronomiche. 6 luglio 2007.

Istruzioni Video: The Problem with Time & Timezones - Computerphile (Potrebbe 2024).