Wie ich es sieht, die konsistente Art und Weise mit der Zeit umzugehen, ist nur UTC time zu verwenden (in der Praxis sehr ähnlich GMT, außer, php gmt * Funktion tatsächlich UTC-Zeit verwenden) intern, zB Datum/Uhrzeit gespeichert in persistenter Speicher (db etc) und Benutzerzeitzone zu verwenden, um Zeit für jeden Benutzer anzuzeigen.
Auf diese Weise behalten Sie die Chronologie, vereinfachen das Design und das Denken und zeigen immer eine Zeit an, die für den Benutzer sinnvoll ist, zB die Zeit in seiner/hier Zeitzone.
In Ihrem Beispiel wäre es egal, welche Zeit angezeigt werden soll, da Sie die einzige relevante Zeit anzeigen würden, z. B. die Zeit, in der sie tatsächlich erstellt wurde, einfach in die Zeitzone jedes Benutzers übersetzt. Und keine Sorge, die Zeit fließt immer, niemand kann sehen, was nicht aufgetreten ist, solange die Zeitreferenz konsistent ist. Es spielt keine Rolle, wenn jemand eine andere Zeit auf seiner Uhr sieht, es kann immer noch der gleiche Moment sein.
Wenn Sie mit Gästen zu tun haben, können Sie mit Hilfe von Geolokalisierung und/oder Browsereinstellungen fundierte Vermutungen über die richtige Zeitzone durchführen. Und Sie können in Ihren Ansichten weiterhin den Zeitzonenwechsel zulassen.
Es ist auch eine Möglichkeit, Ihr Modell zu vereinfachen, da die Verwendung einer einzelnen Referenzzeit den zeitbasierten Vergleich zwischen Objekten erleichtert und das Risiko einer Fehlkonfiguration (ein einziges Setup überall) verringert.
Carbon ist einfach mit Laravel zu verwenden, und ist eine bequeme Art der Arbeit mit Datum/Uhrzeit.
Speichern Sie die Zeit in UTC-Zeitzone und zeigen Sie es den Benutzern basierend auf ihrer Zeitzone Offset von UTC –
Hallo Ich plane, UTC Zeitzone beim Speichern in der Datenbank zu verwenden, aber ich frage mich, was jemand in einem anderen Teil der Welt Sehen Sie, wann die Zeit für sie noch nicht veröffentlicht wurde? –
Also, wenn sie UTC + 2 sind und du UTC-5 bist, wirst du die Zeit minus 7 Stunden sehen (oder fehlt mir etwas?) –