Wie kann ich die Zeitzoneninformationen des Besuchers erfassen?
Ich brauche beides:
- die Zeitzone (z. B. Europa/London)
- und die Abweichung von UTC oder GMT (z. B. UTC+01)
Wie kann ich die Zeitzoneninformationen des Besuchers erfassen?
Ich brauche beides:
Einmal hatte ich diese "einfache" Aufgabe und ich habe (new Date()).getTimezoneOffset()
- der Ansatz, der hier allgemein vorgeschlagen wird. Es stellte sich jedoch heraus, dass die Lösung nicht ganz richtig war. Aus einigen undokumentierten Gründen in meinem Fall new Date()
kehrte zurück GMT+0200 wenn new Date(0)
kehrte zurück GMT+0300 was richtig war. Seitdem benutze ich immer
(new Date(0)).getTimezoneOffset()
um eine korrekte Zeitverschiebung zu erhalten.
Hier ist die Lösung für die Suche nach dem TimezoneOffset der entfernten Länder, indem die Zeitzone einfach an die Funktion übergeben wird. In diesem Beispiel ist 'Asia/Calcutta' die Zeitzone
function getTimezoneOffset(timezone) {
LocalDate = new Date();
LocalDate.setMilliseconds(0);
const LocalOffset = LocalDate.getTimezoneOffset();
RemoteLocaleStr = LocalDate.toLocaleString('en-US', {timeZone: timezone});
RemoteDate = new Date(RemoteLocaleStr);
diff = (LocalDate.getTime()-RemoteDate.getTime()) / 1000 / 60 ;
RemoteOffset = LocalOffset + diff;
return RemoteOffset;
}
console.log(getTimezoneOffset('Asia/Calcutta'));
Sie müssen nur moment.js und jstz.js einbinden
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jstimezonedetect/1.0.6/jstz.min.js"></script>
und danach
<script>
$(function(){
var currentTimezone = jstz.determine();
var timezone = currentTimezone.name();
alert(timezone);
});
</script>
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.