Ich denke darüber nach, Daten bei der Benutzeranmeldung auf meiner Site zu speichern, aber ich weiß nicht, was die logischste Lösung ist.
Anfangs wollte ich die Server-Zeitzone verwenden und sie dann mit Differenzoperationen zwischen dem Server-Computer-Datum und dem Benutzer-Computer-Datum verwalten, aber ich habe auch erwogen, sie direkt mit timezone und php class date zu ändern, also:
%Vor% Meine Frage ist, was ist die beste Lösung, Server Zeitzone oder Benutzer Zeitzone zu halten?
und wenn ich Benutzer Zeitzone verwende, sollte ich den Namen der Zeitzone auch wie in meinem Beispiel speichern?
Ich würde empfehlen, Server-Zeitzone oder UTC zu verwenden, anstatt für jeden Benutzer unterschiedliche Daten zu speichern. Auf diese Weise ist Ihre Datenbank vollständig konsistent und Sie können einige Operationen wie Vergleiche durchführen, ohne für jeden Eintrag die Spalte user_timezone abrufen und die Konvertierung durchführen zu müssen (die nicht vollständig kostenlos ist)
Verwenden Sie UTC . Es wird Ihnen viele Stunden der Frustration ersparen.
Benutzer lokale Zeit ist eine Frage der Präsentation - es ist viel einfacher zu / von lokalen Zeit für einen bestimmten Benutzer zu konvertieren, als die TZ der Datumsfelder jedes Datensatzes in der Datenbank zu verfolgen.
Auch wenn die Verwendung der Zeitzone des Servers verlockend sein mag, können sich die Regeln für die Sommerzeit auf sehr kurzfristig ändern (siehe: Argentinien DST 2009 - die Regierung hat die Entscheidung getroffen, die Sommerzeit nicht zu verwenden, ca. eine Woche bevor es passieren sollte; In einigen Fällen kann sich die Zeitzone selbst ändern (siehe Zeit in Indiana ). Die UTC-Definition wird wahrscheinlich keine so drastischen Änderungen erfahren.
(Eine Geschichte über Serverzeit und Ortszeit: hatte einen Server an der Westküste der USA, zog ihn an die Ostküste der USA; Apps nutzten die Serverzeit; die Hölle brach los. Mit der Virtualisierung ist es möglich, Server einfach und schnell zu verschieben zu verschiedenen Kontinenten .)