2017-03-25 3 views
0

Ich mache eine App, wo Benutzer einen Artikel veröffentlichen können. Wenn jemand in Japan einen Artikel über 2017/03/25 09:00 veröffentlicht sollte ich die Artikel veröffentlichen Datum und Uhrzeit zu dieser Zeit oder sollte ich es auf Server Zeit einstellen?wie Zeitzone in meiner App zu behandeln, wenn Benutzer etwas veröffentlicht

Auch wenn jemand in den USA die Website betritt und gerade dabei ist, den Artikel zu lesen, welches Datum sollte der Artikel sagen, dass er veröffentlicht wurde?

Wenn ich 2017.03.25 09.00 Uhr sage, dass die Zeit für den Benutzer in den USA noch nicht eingetreten ist und es in Zukunft für ihn sein würde, wie spät sollte ich jemandem vom anderen Ende der Welt zeigen? ?

+0

Speichern Sie die Zeit in UTC-Zeitzone und zeigen Sie es den Benutzern basierend auf ihrer Zeitzone Offset von UTC –

+0

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? –

+0

Also, wenn sie UTC + 2 sind und du UTC-5 bist, wirst du die Zeit minus 7 Stunden sehen (oder fehlt mir etwas?) –

Antwort

0

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.

+0

lesen, danke, dass ich die Verwendung von UTC als Laravel ist damit vorkonfiguriert, ich bin nur verwirrt, was dem Benutzer, der den Blog besucht, angezeigt wird, also schlage ich vor, dass ich die UTC-Zeit als Veröffentlichungszeit und nicht die Zeit zum Beispiel in Japan zeige, wo der Ersteller des Posts war so verwirrend für mich.Auch wenn ich UTC-Zeit zeige, was sollte jemand, der hinter der UTC-Zeit ist, sehen, für sie wird es in Zukunft Zeit sein, oder denke ich falsch? –

+0

Nein Ich schlage vor, dass Sie UTC nur intern verwenden und dann in Ihrer Ansicht die genaue Zeit anzeigen, die in die Zeitzone des Benutzers übersetzt wurde. Es ist dasselbe wie zu sagen, es ist 6 Uhr in NYC und Mittag in Paris. Die beiden treten zur selben Zeit auf, obwohl die Uhren nicht dieselbe Ziffer zeigen. Was Sie Ihrem Benutzer anzeigen, ist die Uhr, die Zeit ist, was in Ihrer Datenbank gespeichert ist. Es gibt Funktionen, um genau das in php zu tun, z. B. Anzeigezeit von dieser Zeitzone in diesem anderen, also ist es trivial. – fab2s

+0

eine Follow-up-Frage, wenn Benutzer nicht in meiner Anwendung angemeldet ist und ich präsentiere eine Liste von Artikeln zu einem Besucher bei seinem ersten Besuch, was sollte ich dem Besucher zeigen, dass ich nicht weiß, Zeitzone von? Ich kann Javascript nicht benutzen, das Funktionen hat, Zeitzone zu extrahieren, da dieses sein erster Besuch ist und Javascript, das erste Mal ausführt und das Senden von Daten über Zeitzone zum Server funktioniert für zweiten Besuch solange Sitzung dauert und dann dasselbe Problem, wenn Sitzung verloren ist. Was ist zu tun? –

Verwandte Themen