2010-12-15 18 views
5

Ich möchte in der Lage sein, die Zeit der Person mit dem PHP-Skript zu bekommen.Ermitteln der Uhrzeit und des Datums des Benutzers in PHP

Ich weiß nicht, in welcher Zeitzone sie in seine usw.

Gibt es nicht eine Möglichkeit, nur zu sagen ‚die Zeit des Benutzers erhalten‘ anstatt Zeitzonen einstellen?

+2

Wie würde PHP wissen, in welcher Zeitzone sich die Person befindet? –

+2

Das ist seine Frage. –

Antwort

7

Nein, es gibt nur drei Möglichkeiten, um die Zeitzone des Benutzers zu erhalten:

  1. Bitten Sie den Benutzer

  2. verwenden JavaScript die Zeit Client-Seite zu überprüfen und senden es zu Ihrem Server mit einer AJAX-Anfrage, einem Cookie, etc. - funktioniert nur, wenn JS aktiviert ist und nicht für die erste Anfrage funktioniert

  3. Verwenden Sie ein IP-zu-Standort-Datenbank die Benutzer zu lokalisieren und ihre Zeitzone von dem Ort zu bestimmen - mehr als 5% der Zeit mit jeder kommerziellen Datenbank, Ihr Standort auf Stadtebene wird falsch sein

+2

+1 # 2 (JavaScript) ist der richtige Ansatz. – Asaph

+3

Alle Ansätze sind nützlich, und # 1 ist so oft wie # 2. Korrektheit ist ein kontextsensitives Konzept! Wenn sich jemand registriert und Ihre App zeitspezifische Berichte erstellt, sollten Sie diese nach der Zeitzone fragen, in der die Berichte angezeigt werden sollen, und nicht nach JavaScript oder anderen Methoden. Nicht nur ist JavaScript nicht immer verfügbar, sondern die Zeitzone ihres Computers ist nicht immer die richtige Zeitzone - Reisen in ein anderes Land, Leihen eines fremden Computers, einfach die falsche Uhr einstellen usw. –

+3

# 1 ist am besten, wenn möglich; Javascript ist oft falsch, aber die Leute wissen im Allgemeinen, wo sie sind. –

1

die Person, die das PHP-Skript verwendet.

Das ist der Webserver. Wenn Sie die Person meinen, die das PHP-Skript anfordert, kennen Sie ihre Zeitzone nicht, es sei denn, sie ist nett genug, um sie an Sie zu senden. Firefox scheint nicht, obwohl einige möglicherweise.

Die Antwort hier ist, Javascript zu verwenden, um die lokale Zeit zu erhalten und entweder zu machen, was clientseitig tun muss, oder es irgendwie an den Server zu senden - aber das ist eine andere Frage.

5

Nein, gibt es nicht. Das einzige, was Sie über Ihre Benutzer "kostenlos" erfahren, ist, was über die HTTP protocol kommuniziert werden kann, und das schließt "Benutzer-Zeitzone" nicht ein.

Sie könnte Javascript verwenden, um die Zeit vom Browser zu bekommen, aber das ist nicht garantiert, um genau zu sein.

Sie könnte versuchen, den Benutzer zu geolocate, aber das ist noch weniger genau.

Der Benutzer wird am besten selbst wissen, fragen Sie ihn.

Verwandte Themen