So speichern Sie sich wiederholende Daten unter Berücksichtigung der Sommerzeit

Ich speichere Ereignisse in meiner Datenbank. Ich habe 'Start-' und 'End'-Datumszeiten,' tickets_start 'und' tickets_end '(für den Zeitpunkt, an dem der Ticketverkauf tatsächlich beginnt / endet - im Gegensatz zum Beginn / Ende der tatsächlichen Veranstaltung).

Bisher habe ich Methoden entwickelt, mit denen Sie vor dem Speichern unterhaltsame Dinge erledigen können, z. B. Datum und Uhrzeit in GMT umwandeln und dann zur Anzeige in die entsprechende Zeitzone zurückkehren.

Ich speichere die Zeitzone in einem Varchar-Feld mit Werten wie "America / New_York".

Aber - jetzt muss ich damit anfangen, wenn der Benutzer zulassen möchte, dass Ereignisse wiederholt werden. Ich habe es schon einmal gemacht und es ist keine so große Sache, aber niemals über mehrere Zeitzonen hinweg.

Zuerst dachte ich, dass es keine große Sache sein würde, erkannte dann aber, dass - wenn das ursprüngliche Startdatum im Juli war (als Beispiel) und es sich jeden Monat für ein Jahr wiederholt, wird es irgendwann Sommerzeit sein damit sich die umstellung von gmt zeitlich anders ändert. In einem Monat, wenn 12:00 konvertiert wird, wird es in -5 geändert, und im nächsten Monat wird es aufgrund der Sommerzeit in -4 geändert.

Mein aktueller Gedanke ist, dass ich ein 'dst' tinyint (1) speichere, um festzustellen, ob die Start- / Enddaten während der Sommerzeit eingegeben wurden, und dann eine Methode zur Änderung der Zeit um eine Stunde, falls / falls erforderlich.

Aber - dachte ich mir, ich würde hier in der Hoffnung fragen, dass es vielleicht ein "normales" oder ein einfaches Etwas gibt, an das ich nicht denke.

(cakephp 2.4.x)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage