Frage

Das ist vielleicht eine dumme Frage, aber ich werde sie trotzdem stellen.

Muss ich GMT wirklich vor Ort implementieren, um den richtigen Zeitstempel für einen Beitrag zu erhalten?Nun, ich baue eine Website wie Twitter auf.Meine Feeds funktionieren einwandfrei und zeigen mir die Zeit an, die ich benötige, z. B. „Gepostet vor 11 Minuten, Gestern gepostet, Vor 5 Tagen gepostet“.„Genau wie diese Seite, also dachte ich, dass sie für jeden richtig funktionieren sollte, was meinst du?Oder denkst du, dass ich GMT darauf implementieren muss und empfiehlst du es oder hast du einen Artikel dazu, um es richtig zu implementieren?

Tut mir leid, wenn das dumm klingt :O

War es hilfreich?

Lösung

Das ist ein guter Punkt, aber bedenken Sie den Fall, dass 1 day ago „gestern“ bedeutet und es für einige Benutzer derzeit 1:05 Uhr ist.Ich nehme an, wenn Sie Tage = Stunden % 24 statt Tage = datediff(then, now).days verwenden, dann würde es gut funktionieren.

Ich denke, das Problem ist:Wie genau muss Ihre Website sein?Wenn es sich um medizinische Messungen handelt, damit jemand weiß, wann seine Medikamente fällig sind, dann sollten Sie die Zeitzonen richtig berücksichtigen und genaue Zeiten angeben und nicht nur „vor x“.Wenn es aber nur um „Joe hat vor zwei Tagen Hallo gesagt“ geht, dann ist das keine große Sache.

Andere Tipps

Auf lange Sicht ist es am besten zum Speichern von Zeitmarken immer in GMT / UTC, egal, wie die Benutzeroberfläche gerendert wird. Dies hat zwei Vorteile:

  • , wenn irgendwann die Benutzeroberfläche zu ändern, werden Sie nicht um die Daten berühren müssen
  • es gibt eine klaren Designrichtlinien (im Sinne einer klaren richtig / falsch Entscheidung): jeder spezifische Funktion Umgang mit der Zeit unabhängig WRT überprüft werden kann. Verarbeitung Zeitstempel in UTC

Wie für spezifische Programmierrichtlinien: diese hängen sehr stark von der Funktionalität möchten Sie ausführen. Die meiste Zeit, müssen Sie entweder von den utc oder zu utc Operationen.

Wenn Sie sprechen über Zeiträume wie Stunden, Minuten und Sekunden, dann ist das nicht einmal etwas mit Zeitzonen zu tun. Schauen Sie sich die Zeitstempel, wann es erstellt wurde, und Blick auf dem Zeitstempel jetzt. Tun Sie etwas Subtraktion und voila!

Das einzige Mal, es etwas seltsam ist, wenn man im Bereich von ein paar Tagen ist. Hat gestern mean „einige Zeit in den 24 Stunden vor dem letzten Mitternacht“ oder es „mehr als 24 Stunden“ bedeutet? In jedem Fall, wenn die einzige Ebene der Granularität Sie bereitstellen „Tage“ ist, dann, wenn es weg ist Vergangenheit etwa 2 Tage, dann tut es nicht wirklich wichtig.

Ein schöner Weg, um Verwirrung zu vermeiden ist die gleiche Methode hier auf SO verwendet: Setzen Sie das lesbare, freundlich Datum auf dem Bildschirm ( „gestern“), sondern setzt die genaue Zeit (in GMT oder in der TZ des Benutzers) als Tooltip .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top