Ich möchte ihre Zeitzone mit Namen wie 'Asien / Kalkutta' oder 'Australien / Darwin'
versehenIch habe PHP auf meinem Server installiert und seine Zeit auf 'UTC'
eingestelltDies ist mein erster Beitrag hier, aber hoffentlich kann ich jemandem helfen. Ich fühlte mich gezwungen, weil diese Seite mir sehr geholfen hat. Danke stackoverflow Mitglieder!
Von dem, was ich über diesen JavaScript-Code verstehe, ist er sehr genau und wird in der Lage sein, den Offset von UST, den entsprechenden Zeitzonennamen der Olson Database zurückzugeben und das Problem der Sommerzeit zu lösen (zB -5: 00, America / New_york, stimmt).
Der obige Link ist nur eine Liste der php unterstützten Zeitzonenparameter, die, soweit ich sagen kann, mit diesem JavaScript-Code übereinstimmen (Ich bin mir sicher, dass das nützlich ist. Ich weiß einfach nicht warum ich noch meinen Code schreibe und ich bin irgendwie neu in PHP / MySQL).
Die einzige Hürde, mit der Sie konfrontiert werden, nachdem Sie diesen Code auf Ihrer HTML-Seite zum Laufen gebracht haben, wird wahrscheinlich diese Werte zu PHP und dann zu MySQL bringen, wenn Sie das brauchen. Ich habe dies erreicht, indem ich diese Werte als $ .post mit JQuery gesendet habe. Ich denke, das ist der einfachste Weg, es zu tun (bitte korrigieren Sie mich, wenn ich falsch liege). Ich glaube, die anderen Alternativen verwenden einen AJAX-Befehl (komplizierter) oder Cookies (denke ich?).
Nachdem ich die Werte vom Java-Script-Code zum Server (PHP) bekommen habe, habe ich sie als Sitzungsvariablen gespeichert, damit sie sich ändern, wenn der Benutzer auf meiner Seite aus einer anderen Zeitzone als üblich angemeldet ist. Sie können jedoch leicht in der Datenbank gespeichert werden.
Wenn Sie die JQuery-Route verwenden, muss dies in der Kopfzeile des HTML-Dokuments sein, in dem $ .post ausgeführt wird.
%Vor%Das aktuellste timezonedetect-Skript kann auf der ersten von mir geposteten URL gefunden werden.
%Vor%Die Empfangsdatei in diesem Fall tzdetect.php sollte so aussehen, wenn Sie möchten, dass die Daten als Sitzungsvariablen gespeichert werden.
%Vor%Um den Zeitzonen-Offset zu erkennen, können Sie diese Funktion verwenden:
%Vor%Beispiel Sie können hier
sehenBei Ihrer Frage geht es eher um Javascript als um PHP - weil es von den Client-Fähigkeiten abhängt.
Wie ich es verstehe, erlaubt Ihnen Javascript, den aktuellen Zeitzonen-Offset (den Unterschied zwischen UTC und lokaler Zeit) zu bestimmen, aber das nicht erlaubt Ihnen, die Zeitzone eindeutig zu bestimmen. Viele Zeitzonen teilen sich den gleichen Offset zu einem bestimmten Zeitpunkt, unterscheiden sich jedoch zu anderen Zeiten in Bezug darauf, ob sie die Sommerzeit beobachten und an welchem Punkt sie die Sommerzeit ändern oder nicht.
Wenn Sie auf jeden Fall die Zeitzone benötigen, sollten Sie eine Liste mit möglichen Zeitzonen erstellen und diese dem Benutzer präsentieren. Außerdem können Sie die Einschränkungsentscheidung überschreiben, indem Sie beliebige Zeitzone.
Auch hier kommt es wirklich darauf an, was Sie erreichen wollen.
Sie brauchen jQuery dafür nicht. Probieren Sie den folgenden Code:
%Vor%Es wird der aktuelle Zeitzonen-Offset vom Browser (in Minuten) gemeldet.
Siehe dieses Spiel als Beweis .
Ich denke, du musst es selbst in den Namen der Zeitzone umwandeln. Wenn Sie möchten, dass die Namen konsistent sind, sollten Sie nicht vom Browser des Benutzers abhängig sein.
Sie können diesen Code verwenden (siehe dieser Artikel ):
%Vor%Aber ich würde mich nicht zu sehr darauf verlassen.
Sie können den Zeitzonen-Offset abrufen. Welche können Sie verwenden, um die ungefähre Zeitzone zu berechnen. Sie können eine assoziative Liste des Zeitzonen-Offsets und des names
beibehalten.
Diese Methode liefert jedoch keine genauen Werte.