Zeitzone in einer Datenbank speichern

8

Ich werde MySQL und PHP verwenden und die Zeitzone in der DB speichern. Habe ein bisschen darüber gelesen und es scheint so, als müsste ich etwas wie America/Los_Angeles verwenden, und nicht PST , Pacific Standard Time , PST8PDT , +02.00 , etc.

Speichere ich die ganze Zeichenfolge America/Los_Angeles oder gibt es eine Art Integer-ID wie Ссылка beschreibt für c #? Wenn die Wer-Zeichenfolge, was ist die maximale Anzahl der Zeichen?

    
user1032531 01.11.2015, 17:33
quelle

2 Antworten

6

Die Zeitzonenzeichenfolgen wie America/New_York beziehen sich auf Einträge in der so genannten zoneinfo -Datenbank. Lesen Sie dies. Ссылка Es wird derzeit von der Internet Assigned Numbers Authority verwaltet. Es ändert sich sehr, weil sein Betreuer versucht, mit den Änderungen bei den Regeln für die Sommerzeit und anderen temporopolitischen Dingen Schritt zu halten.

Auf UNIX-ähnlichen Systemen werden die Einträge in einer Verzeichnishierarchie des Dateisystems und nicht durch eine Codenummer gespeichert.

Sie haben gefragt:

  

Speichere ich die ganze America/Los_Angeles Zeichenfolge

?

Ja.

  

Gibt es eine Art Integer-ID dafür?

Nein, nicht wenn Ihre Anwendung und Datenbank zukunftssicher sein soll. Es gibt eine time_zone_id in dem Teil von MySQL, der die zoneinfo-Daten enthält, aber niemand hat versprochen, diese Zahlen unverändert zu lassen.

Die längste Zeichenfolge in der aktuellen (2015g) Datenbank lautet "America / Argentina / ComodRivadavia". Es ist 32 Zeichen lang. Es ist wahrscheinlich sinnvoll, VARCHAR(64) zum Speichern dieser Informationen zu verwenden, damit Sie nie ausgehen.

Übrigens bietet WordPress dem Benutzer eine Auswahlliste (Drop-down-Liste) der verfügbaren Zeitzonennamen und speichert die Auswahl des Benutzers als Text.

Ссылка

    
O. Jones 01.11.2015, 18:09
quelle
4

Hier finden Sie MySql DateTime

  

MySQL konvertiert TIMESTAMP-Werte von der aktuellen Zeitzone in UTC für den Speicher und zurück von UTC in die aktuelle Zeitzone für den Abruf. (Dies gilt nicht für andere Typen wie DATETIME.) Die aktuelle Zeitzone für jede Verbindung ist standardmäßig die Serverzeit. Die Zeitzone kann pro Verbindung festgelegt werden. Solange die Zeitzoneneinstellung konstant bleibt, erhalten Sie den gleichen Wert zurück, den Sie gespeichert haben.

Sie sollten eine neue Spalte in Ihrer Tabelle hinzufügen, um Ihre Zeitzone beizubehalten und beim Extrahieren von Informationen Ihre Zeitzone zu konvertieren.

    
Laurentiu 01.11.2015 17:43
quelle

Tags und Links