2014-12-30 15 views
5

Es gibt viele Lösungen in Javascript, um zu überprüfen, ob das Datum bei Tageslicht ist oder nicht [How to check if the DST (Daylight Saving Time) is in effect and if it is what's the offset?].Javascript - überprüfen, ob die Sommerzeit für verschiedene Zeitzonen gültig ist

Aber diese Lösungen funktionieren nur, wenn sich jemand in derselben Zeitzone befindet, in der der Tageslicht-Effekt anwendbar ist, ex. Angenommen, mein aktueller Browser (Client) ist in IST (indischer Standard - wo gibt es keine Tageslichtzeit ändern) und ich möchte überprüfen, ob das Datum bei Tageslicht ist oder nicht für ET (Eastern time - wo Tageslicht ist -5 und Standard ist -4). Die obige Lösung (von der Verbindung) würde mir nur dann ein korrektes Ergebnis geben, wenn meine Systemzeitzone in ET und nicht in IST ist.

Wie kann ich es berechnen?

Antwort

5

Wenn Sie moment.js verwenden und es ist Begleiter timezome Skript, sie für DST machen Überprüfung recht einfach:

Schauen Sie sich ihre docs for isDST()

Nur für grins, 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>

Verwandte Themen