2009-06-12 4 views

Antwort

2

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)“

+0

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

+0

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 –

4

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.

+2

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. –

Verwandte Themen