2010-03-24 3 views
7

Ich erstelle ein Skript, das der Benutzer seine eigene Zeitzone auswählen kann ...Zeitzonen für verschiedene Benutzer

Wenn ich diese Arbeit zu machen, wie kann ich speichern Daten in der Datenbank, so dass jede Zeitzone wird lesen Sie es und zeigen Sie das korrekte Datum in ihrer Zeitzone an?

Wird das Datum als GMT gespeichert und wenn ein Benutzer mit der Zeitzone GMT +10 das Element in meinem Skript anzeigt, zeige ich dieses Datum in GMT +10 Zeit an?

Gibt es einen besseren Weg, dies zu tun?

Beispiele würden :)

Antwort

4

Speicher die Zeitzonen in UTC in der Datenbank groß ist definitiv der Weg zu gehen.

1

UTC ist, wie Sie es tun, um ein aktuelles Datum aus ihrem Browser

Hol (verwenden Javascript und poste der Browser zum Server Datum) zur Arbeit in welcher Zeitzone sie sind in und legen Sie es als Standard-

1

In MYSQL werden Timestamp-Felder immer intern in UTC gespeichert, aber Abfragen geben formatierte Strings basierend auf der Zeitzone des Datenbankservers zurück. Daher sollte der Datenbankserver wahrscheinlich auf UTC gesetzt werden, um Dinge zu vereinfachen. Übergeben Sie das Zeug direkt an ein DateTime-Objekt, und verwenden Sie dann die setTimezone()-Funktion, damit es in der gewünschten Zeitzone arbeitet.

Sie können auch date_default_timezone_set() verwenden, um eine Zeitzone in PHP festzulegen, die für den Rest Ihres Skripts verwendet wird.

+1

Oh, und "UTC" ist die neue "GMT", nur zur Klarstellung. – keithjgrant