Anzeige von Datum und Uhrzeit gemäß der Zeitzone des Benutzers in Coldfusion
Brauche ich zu display datetime-Werte in meiner Anwendung nach dem angemeldeten Benutzers lokale Zeitzone. Ich möchte, dass meine app in der Lage sein zu erkennen die Benutzer die Zeitzone automatisch zeigt dann die eingestellte server-Datum und die Zeit entsprechend.
Wie tun Sie dies in Coldfusion?
Ich bin auf der Suche nach einer Lösung, dass NICHT der Benutzer aufgefordert zu wählen Sie Ihre Zeitzone an jedem Punkt, wie Facebook.
Dank
- In der Regel können Sie nur bestimmen, die die Benutzer timezone offset, und dies kann Konto für die Sommerzeit. Sie könnte Versuch zur Verwendung von IP-geolocation-aber dies ist in der Regel nicht spezifisch genug, in Australien (Benutzer in Broken Hill wird geo-suchen Sie nach Sydney, und teilen nicht die Zeitzone). Irgendwann bin ich ziemlich sicher, Sie finden eine Ecke Fall, wo Sie brauchen, um den Benutzer zu Fragen. Besser einfach machen Daten client-Seite (vorausgesetzt, dass Benutzer-setup Ihren computer richtig!)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anstatt CF tun, die Formatierung, ich würde schieben eine standardisierte Datums-Darstellung (wie UTF( und JavaScript das Datum zu formatieren. So, das Datum ist so formatiert, unabhängig von der Zeitzone auf dem computer festgelegt ist.
Dies vermeidet falsch-lookups in der Nähe von zone ändern-Bereichen, die sich mit Sommerzeit vs. Bereichen, wo es nicht beachtet wird, und die Menschen Reisen (Formatierung auf "home time" vs. "lokale Zeit").
Hinzugefügt:
Diese gibt die aktuelle Zeit im Langformat. Es ist semi-off-the-Manschette, so dass Sie wollen, zu betrachten, die JavaScript-Date-Objekt's Methoden, um weitere Formatierungsoptionen anzuzeigen.
d.setUTCMonth(#dateformat(n, "m")#);
sollted.setUTCMonth(#dateformat(n, "m")# - 1);
für javascript zum anzeigen der richtige Monat.ColdFusion ist eine serverseitige Sprache. So können Sie nicht feststellen, die Zeitzone des client in einer direkten Art und Weise.
Können Sie verwenden, wenn javascript auf der client-Seite, finden Sie heraus, die timezoneoffset und senden Sie es über einen Ajax-request an den ColdFusion.
JavaScript:
Dann auf der server-Seite können Sie den offset zu berechnen das Datum, das Sie wollen, um den Benutzer anzuzeigen.
Können Sie auch nachschlagen, das Land von den client über die client-IP, aber dann muss man über einen externen Dienst, um das Land für eine bestimmte IP und Sie mit Problemen zu kämpfen haben wie die Sommerzeit und mehrere Zeitzonen pro Land.
Wäre es schneller und genauer, wenn Sie Sie haben Fragen Sie einfach Ihren Benutzer festlegen, deren Zeitzone als Teil Ihrer login-Profil; einmal eingestellt und vergessen.
Sonst, die Sie suchen, zu tun, eine IP-Adresse suchen und zu bestimmen, wo diese IP-Adresse basiert, Festlegung der Zeitzone und dann die Anzeige der Zeit entsprechend. Sogar, wenn Sie die Speicherung der Informationen in einem cookie oder session-variable, die ein bisschen von einer faff, wenn Sie nur könnten, bitten Sie Ihre Benutzer, welche Zeitzone Sie sich befinden.
wenn Sie cfwheels.org und Ihre Benutzer, nicht Geist, um zu sehen, "gestern" oder "vor 10 Minuten"... dann ist das TimeAgoInWords() ist das, was Sie brauchen.