Ich möchte die Systemzeitzone des Benutzers ausgeben, z. "EUROPÄISCHE SOMMERZEIT". Wie kann ich das tun, vorzugsweise mit Javascript, obwohl ich es auch auf der PHP-Seite tun könnte, wenn das wesentlich einfacher ist.Wie bekomme ich die Zeichenkette Darstellung der Benutzer Zeitzone mit Javascript?
Antwort
Sie müssen Javascript verwenden, da Sie die Zeitzone des Clients auf der Serverseite nicht kennen. Sie können den folgenden Code verwenden und die relevante Zeitzonenzeichenfolge von localtime extrahieren.
var now = new Date();
localtime = now.toTimeString();
, die so etwas wie „12.21.44 GMT-0400 (EDT)“
Javascript hat eine Date.getTimezoneOffset
Funktion, die Ihnen den Unterschied in Minuten zwischen dem GMT und der lokalen Zeitzone zurückkehren wird. Um von dem der tatsächlichen zu bekommen versetzt, man könnte sagen:
var offset = Date.getTimezoneOffset/60 * -1
Die * -1
benötigt wird, da die wird versetzt gegenüber, was Sie erwarten (zB EST, die GMT -5, würde in 300, weil GMT 300 Minuten voraus ist).
Von dort müssen Sie den Offset in die Beschreibung des Offsets konvertieren. Es gibt keinen eingebauten Weg in Javascript, um dies zu tun. Sie könnten in Erwägung ziehen, ein Sucharray zu erstellen, aber dann gibt es das Problem, dass es mehrere Namen für denselben Offset gibt (zB GMT - 5 könnte EST (Eastern Standard Time) oder CDT (Central Daylight Time) sein.
Siehe Wikipedia für ein list of timezones.
Das Problem bei diesem Ansatz ist der Offset von i Selbst ist nicht genug. Sie müssen wissen, ob dort eine "Sommerzeit" in Kraft ist. –
Hmm ... das ist in der Nähe. ich bin "Eastern Daylight Time" bekommen, anstatt die Abkürzung. (Eigentlich I * kann * Verwendung php, denn dies ist für eine App Dies wird lokal auf dem Computer des Benutzers ausgeführt.) – sprugman
Siehe http://stackoverflow.com/questions/709350/time-zones und http://stackoverflow.com/questions/633300/how-do-you-get-php- to-return-the-timezone-Abkürzung-aest –