Datum / Zeit, Konvertierung des Benutzers local time zu UTC auf-website
Ich bin derzeit hinzufügen eines out-of-office-system wie auf eine website, wo Benutzer in der Lage sein zu markieren, Ihre out-of-office Termine und Zeiten, so dass Sie einen anderen Benutzer-Informationen zu verwenden, wie ein backup, während Sie aus sind.
Das problem, das ich habe, ist die Umwandlung der Benutzer die lokale Zeit zu UTC. Ich habe gesehen, andere Beiträge, die Adresse dieses Problem durch die Bereitstellung UTC für den Benutzer, und dass der client (js) konvertieren Sie die Zeit und lokaler Zeit. Ich bin allerdings der Zugang zu einem proprietären system, das ich verwenden können, konvertieren Sie das Datum auf server-Seite basierend auf der Benutzer-Zeit-Zonen-Einstellung.
Meine Frage ist: Sollte ich das server-side-Konvertierung, die es erlauben würde, einen Benutzer Hause lokale Zeit geliefert werden (sagen wir, Ihre UNS Zeit, unabhängig davon, wo Sie angemeldet sind) oder sollte ich das clientseitige Konvertierung?
Hat jemand schon Erfahrung mit dieser? Was sind einige der weniger offensichtlichen Vorteile /Nachteile der einzelnen Methoden?
- Wenn Sie möchten, einige code-Beispiele, bitte Liste der Technologie. Es sei denn, es ist PHP, ich könnte in der Lage sein, dies zu ermöglichen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Speichern alles in UTC ist eine sehr gute Idee und ich empfehle, dass Sie bleiben.
Gibt es nur wenige Ansätze, die Sie verwenden können. Ich gehe davon aus, dass Sie User-profile. Sie können entscheiden, um den Benutzern eine Möglichkeit, um wählen Sie die Zeitzone, die Sie bevorzugen und display alles, was mit diesen Informationen. Sowie Behandlung aller Benutzereingaben angemessen ("konvertieren" auf der server-Seite, vorausgesetzt, die Zeit zone ist bevorzugt eine).
Anderen Weg, es zu handhaben, ist, um tatsächlich nehmen Sie die Zeitzone des Benutzers offset über
Date.getTimeZoneOffset()
und senden Sie es zu Ihrem server irgendwie (z.B. via hidden-form-Feld oder Ajax). Wenn Sie das wissen, zeigen alles in der User ist an der Zeit wäre die Stück Kuchen. In diesem Fall möchten Sie vielleicht zu konvertieren Datum/Uhrzeit auf dem client und senden Sie es als UTC (oder verwenden hidden-form-Feld mit Zeitzonen-offset).In beiden Fällen, die Sie behandeln-Datenbank Datum Konvertierung auf server-Seite. Dies ist der beste Ansatz aus meiner Erfahrung. Ich möchte darauf hinweisen, dass abgesehen von nur Umwandlung von Zeit-Zonen, sollten Sie wahrscheinlich denken über die Darstellung von Datum/Uhrzeit im richtigen format (also je nach AcceptLanguage-header-Wert).
Die Frage kommt auf, ob Sie denken, dass die Benutzer stellen Sie die richtige Zeit in Ihrem Profil und ob Sie denken, dass Sie einen client haben, legen Sie die Zeitzone, dass Ihr computer so eingestellt ist.
Wenn das home-Zeit-Einstellung ist optional ein in dem Profil (eine, die eine große Anzahl von Benutzern nicht richtig eingestellt), dann sollten Sie die client-Seite der Zeit.
Wenn Sie erwarten, eine Menge von Nutzern Zugriff auf das system von einem computer aus nicht auf Ihre bevorzugte Zeitzone ein (sagen, wenn Sie Zugriff auf Sie von einem hotel-computer), dann sollte man das konvertieren der Uhrzeit auf dem server.
Wenn beides auf Sie zutrifft, sind verdammt, wenn Sie tun, und verdammt, wenn Sie nicht.
Wenn weder das eine gilt, als die beiden Lösungen der gleiche, zufriedenstellende Ergebnisse zu erzielen.
Egal was Sie wählen, ist es eine gute Idee, fügen Sie einen Zeitstempel an die Zeit, als zeigen Sie es, jegliches Missverständnis.