2014-12-30 47 views
5

Esistono molte soluzioni disponibili in javascript per verificare se la data è in pieno giorno o meno [How to check if the DST (Daylight Saving Time) is in effect and if it is what's the offset?].javascript - controlla se l'ora legale è in vigore per fuso orario diverso

Ma le soluzioni funzionano solo quando qualcuno si trova nello stesso fuso orario in cui è applicabile l'effetto diurno, ex. Supponiamo che il mio attuale browser (client) sia IST (standard indiano - senza ora legale) e voglio controllare se la data è in giorno o meno per ET (ora orientale - dove la luce del giorno è -5 e lo standard è -4). La soluzione superiore (dal collegamento) mi fornisce il risultato corretto solo se il fuso orario del mio sistema è in ET non IST.

Come si calcola?

risposta

5

Se si utilizza moment.js ed è compagno di timezome sceneggiatura, fanno il controllo per l'ora legale piuttosto semplice:

controllare il loro docs for isDST()

Solo per sorrisi, here's a fiddle testing each timezone

if(moment.tz("America/New_York").isDST()){ 
 
    $('#test').append('NY is currently in DST'); 
 
} 
 
else{ 
 
    $('#test').append('NY is NOT currently in DST'); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<script src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.3/moment.min.js"></script> 
 
<script src="http://momentjs.com/downloads/moment-timezone-with-data.min.js"></script> 
 

 

 

 
<div id="test"></div>