Come convertire la data UTC Javascript in fuso orario orientale

Le persone spesso esprimono i fusi orari di tutto il mondo come scostamenti positivi o negativi dal Coordinated Universal Time, o UTC. UTC è lo standard orario basato sull'ora atomica internazionale e nell'uso occasionale è considerato equivalente all'ora di Greenwich (GMT). Utilizzando il linguaggio di scripting JavaScript, puoi convertire facilmente l'ora UTC nell'ora di New York.

Passo 1

Istanzia un oggetto Date JavaScript chiamando il costruttore Date(), passandogli come unico parametro il metodo UTC() (ad esempio, per la mezzanotte del 1 gennaio 2000 ora UTC, “var fooDay = new Date(Date.UTC(2000 ,0,1,0,0,0,0))”). UTC() è un metodo statico che restituisce il numero di millisecondi trascorsi dalla mezzanotte del 1 gennaio 1970 ora UTC. La sua sintassi è Date.UTC(anno, mese, giorno, ore, minuti, secondi, millisecondi), dove tutti gli argomenti sono espressi come cifre. I primi tre argomenti sono obbligatori mentre i restanti argomenti sono facoltativi. Questo oggetto Date rappresenta l'ora che si desidera convertire, espressa nell'ora locale.

Passo 2

Calcola la differenza di tempo in millisecondi tra l'ora UTC e l'ora locale e memorizza il risultato in una variabile. Per calcolare il tuo offset locale, chiama il metodo getTimezoneOffset() del tuo oggetto Date e moltiplica il suo valore restituito per 60.000 (ad esempio, "var localOffset = fooDay.getTimezoneOffset() * 60000"). Moltiplichi per 60.000 per convertire i minuti in millisecondi (1.000 millisecondi in un secondo * 60 secondi in un minuto = 60.000 millisecondi).

Passaggio 3

Ottieni il valore UTC in millisecondi del tuo oggetto Date chiamando il suo metodo getTime() e aggiungendo il valore restituito al tuo offset locale (ad esempio, "var fooUTC = fooDay.getTime() + localOffset").

Passaggio 4

Crea una costante per rappresentare l'offset del fuso orario orientale in millisecondi (ad esempio, "const EAST = 3600000 * -5"). Moltiplichi per 3.600.000 per convertire le ore in millisecondi (1.000 millisecondi in un secondo * 60 secondi in un minuto * 60 minuti in un'ora = 3.600.000 millisecondi) e moltiplichi per -5 perché l'ora di New York è cinque ore indietro rispetto all'ora UTC.

Istanzia un altro oggetto Date chiamando il costruttore Date(), passandogli come unico parametro la somma del valore UTC del primo oggetto Date e la costante di offset del fuso orario orientale (ad esempio, "var barDay = new Date(fooUTC + EAST )”). Questo oggetto Date rappresenta la tua data UTC originale, ora convertita in Eastern Time.