Wie Sie anzeigen können, lokalisiert die Zeit, basierend auf einem Besucher-Standort?
Entwickeln wir eine website, die verwendet wird von Menschen auf der ganzen Welt. Es gibt eine chat-Abschnitt in der website, und wir wollen, dass die Nachrichten mit einem Zeitstempel. Ich bin die Speicherung in einer Datenbank ein Zeitstempel für jede Nachricht.
Was ist der Weg zu zeigen, den richtigen Zeitpunkt für jede Nachricht an Besucher, basierend auf seiner lokalen Zeit.
Will ich nicht zu Fragen den Benutzer nach seiner Zeitzone. Gibt es eine Möglichkeit, dies zu tun, nur mit PHP? Wenn nicht - was ist der Weg zu zeigen, die aktuelle Zeit basierend auf der Besucher aktuelle Uhrzeit mit javascript?
- Die Verwendung von Javascript im front-end auf die server-timestamp, und berechnen Sie und drucken Sie die lokale Zeit ein. Es wird einfacher sein, wenn der server den Zeitstempel, den Sie speichern sind UTC+0.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine fundierte Vermutung über die user-Zeitzone mit geo-IP -
http://php.net/manual/en/book.geoip.php
Oder Sie können javascript verwenden:
http://www.onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/
Erreichen Sie dies mit PHP wenn Sie wissen, die Benutzer-IP-Adresse ($_SERVER['REMOTE_ADDR']).
Schauen Sie in Geo-IP (http://php.net/manual/en/book.geoip.php) für matching-Standort<->ip-Adresse
Die IP-Adresse nicht notwendig reflektieren der Benutzer "echte" position, wenn (zum Beispiel) er/Sie ist hinter einem proxy. Ich habe auch gesehen, die ein seltsames Verhalten beim Einsatz der mobilen Geräte (GPRS/edge/3G/HSDPA).
Habe ich nicht die Einsicht, wie man dies in PHP, aber da Sie Fragen zu javascript sowie, können Sie die
Date
Objekt.Zur vollständigen Referenz: http://www.w3schools.com/jsref/jsref_obj_date.asp
Beachten Sie auch, dass dies ist, natürlich, basierend auf Benutzer-computer-Zeit-Einstellungen. Es wird keine überprüfung des Benutzers weltweit, position, basierend auf seiner Netzwerk-Adresse. Wenn Sie wirklich wollen, zu tun, dann ignorieren Sie meine Antwort 🙂
Anderen Antworten gesagt haben, ist Javascript die richtige Technologie für diese, aber wenn Sie darauf bestehen, mit php, dann eine Möglichkeit, wie Sie dies tun können, ist durch die Verwendung eines geolocation-Bibliothek oder service zu suchen, erraten Sie die Zeitzone aus der IP-Adresse.
Wird dies jedoch immer eine beste Lösung erraten, und in vielen Fällen die ip-Adresse ein Besucher kommt, kann nicht einverstanden mit der Zeitzone sich der Benutzer gerade befindet.
Die einzige garantierte Weg, um die Anzeige genau zu der Zeit eingerichtet, auf Nutzer-PC ist die Verwendung von JavaScript. Sie können versuchen, die server-side-geo-Erkennung, aber Datenbanken sind nie perfekt oder Benutzer gut könnte ein remote-client, der einige Anbieter aus ganz verschiedenen Zeit-zone. Senden Sie Ihre Zeitstempel in Sekunden vom Unix-Epoche Zeit, dann initialisieren
Date
Objekt in JavaScript mit dieser Zeit und seine .bekommen (ohne UTC) Methoden zum abrufen von entsprechenden Stücke der Zeit in Ihrer lokalen Vertretung. Die Bereitstellung der Benutzer mit der option zum verwenden einige spezifische Zeitzone Fall will er außer Kraft setzen lokale Zeit aus irgendeinem Grund ist es eine gute Idee als gut.PHP ist eine server-side-scripting-Sprache, daher kommen Sie nicht an die lokale Zeit des Besuchers, es sei denn, Sie verwenden GeoIP. Sollten Sie JavaScript verwenden, statt.