Heim >Backend-Entwicklung >PHP-Tutorial >Wie gehe ich mit der Sommerzeit in MySQL-Datums-/Uhrzeitfeldern um?

Wie gehe ich mit der Sommerzeit in MySQL-Datums-/Uhrzeitfeldern um?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-16 19:39:03800Durchsuche

How to Handle Daylight Savings Time in MySQL Datetime Fields?

Umgang mit der Sommerzeit in MySQL-Datums-/Uhrzeitfeldern

Bei der Verwendung von Datums-/Uhrzeitfeldern in MySQL kann die Angabe des Zeitzonenversatzes eine besondere Herausforderung darstellen beim Umgang mit Sommerzeit (DST).

Die Datums-/Uhrzeitfelder von MySQL speichern Zeitstempel direkt, ohne die Zeitzone anzuwenden Konvertierungen. Dies bedeutet, dass Zeitstempel möglicherweise nicht eindeutig sind, wenn sie in einer Zeitzone gespeichert werden, in der die Sommerzeit berücksichtigt wird. Beispielsweise könnte sich „2009-11-01 01:30:00“ entweder auf 01:30:00 vor oder nach dem „Fallback“ im Herbst beziehen.

Um Zeitdaten während der Sommerzeitübergänge genau zu speichern und abzurufen , werden folgende Schritte empfohlen:

  1. Verwenden Sie DATETIME Felder:

    • TIMESTAMP-Felder konvertieren Zeitstempel automatisch in UTC und zurück, was bei der Verwendung von Zeitzonen mit Sommerzeit zu verlustbehafteten Roundtrips führen kann.
    • DATETIME-Felder hingegen speichern Zeitstempel wie sie sind.
  2. Konvertieren Zeitzonen vor dem Speichern:

    • Um eine genaue Speicherung zu gewährleisten, konvertieren Sie Zeitstempel aus der Systemzeitzone in eine Nicht-DST-Zeitzone (z. B. UTC), bevor Sie sie in der Datenbank speichern.
  3. Zeitzonen vorher konvertieren Abrufen:

    • Um abgerufene Zeitstempel genau zu interpretieren, konvertieren Sie sie mithilfe externer Funktionen außerhalb von MySQL (z. B. PHPs strtotime() oder DateTime-Klasse) von der UTC-Zeitzone zurück in die lokale Systemzeitzone.
  4. Vermeiden Sie MySQL-Datums-/Uhrzeitberechnungen Funktionen:

    • Die mathematischen Datums-/Uhrzeitfunktionen von MySQL können im Bereich der Sommerzeitgrenzen fehlerhaft funktionieren, wenn sie mit Zeitstempeln arbeiten, die in Sommerzeitzonen gespeichert sind.

Von Wenn Sie diese Schritte befolgen, können Sie Zeitdaten in MySQL zuverlässig speichern und abrufen, selbst wenn es um Sommerzeitübergänge geht, und so sicherstellen, dass Zeitstempel genau aufgezeichnet werden vertreten.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit der Sommerzeit in MySQL-Datums-/Uhrzeitfeldern um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn