2009-03-10 3 views
4

Die Frage ist, wie es klingt - wie die Zeitzone des Clientbenutzers basierend auf ihrer Browsereingabe abgerufen wird? Wenn es darauf ankommt, serverseitig, wird J2EE verwendet - aber das ist in diesem Fall nicht wirklich wichtig. Im Moment ist HTTP das Protokoll, es kann HTTPS verwenden, wenn es online geht.Wie rufen Sie die Zeitzone des Clientbenutzers für eine Webanwendung ab?

+0

Dies wäre nützlich die Browser-Anwendungen aussetzen zu haben, und es scheint, dass es nicht viel Risiko aussetzen würde. – pearcewg

+4

Duplikat von Frage 13 (!). http://stackoverflow.com/questions/13/how-can-i-determine-a-web-users-time-zone – user9876

Antwort

1

Ich bin mir sicher, dass dies ein Duplikat ist.

Der beste Weg ist, den Benutzer zu fragen. Die Zeitzone wird standardmäßig nicht in den HTML-Headern gesendet. Bedenken Sie auch, dass ein Benutzer aus einer Zeitzone möglicherweise einen anderen besucht. Welche Zeitzone sollten Sie verwenden?

+0

Wenn es ein Duplikat ist, konnte ich es nicht in der Liste der "verwandten Fragen" finden . Es gibt einige Fragen, die ähnlich sind, aber keiner hat gefragt, wonach ich gesucht habe. – MetroidFan2002

+0

Ich sehe, dass dies ein Duplikat von http://stackoverflow.com/questions/743505/how-to-get-time-zone-through-ip-address-in-php ist, trotz der unterschiedlichen Sprache. –

+0

Diese Frage ist sehr ähnlich, fragt aber explizit nach (und erhielt eine Antwort auf) PHP. Aber das würde nicht funktionieren, wenn Sie einen Stack verwenden, der kein PHP ist. – MetroidFan2002

3

Scheint jemand hacked some javascript, um dies abzuleiten, aber ja, der beste Weg ist, den Benutzer entscheiden zu lassen. Sie können jedoch den obigen Link verwenden, um den Standard für den Benutzer auszuwählen.

1

Sie können auch IP-Geolocation-Dienste wie ip2location verwenden. Sie geben sell a database subscription zurück, die die Zeitzone zurückgibt, in der sich die IP-Adresse befindet. Natürlich hat das einen Preis. A Javascript solution würde funktionieren, aber erfordert, dass der Client es unterstützt. Die Geolokalisierung unterstützt jeden Client, kann jedoch das falsche Ergebnis liefern, je nachdem, wie der IP-Block zugewiesen wurde oder ob der Client einen Proxy-Server in einer anderen Zeitzone verwendet (höchstwahrscheinlich ein anomysierender Proxy-Dienst). Die Javascript-Lösung unterstützt eine große Vielfalt von Clients, gibt aber die Zeitzonenbasis zurück, auf der der Computer eingestellt ist, und nicht die Zeitzonenbasis auf dem tatsächlichen Standort (reisender Benutzer ändert nicht immer die Zeit auf seinem Computer). Es gibt also keine einzige Lösung, die alle abdeckt.

Mit einer dieser beiden Methoden eine Schätzung zu machen und dann dem Benutzer zu erlauben, sie zu korrigieren, wäre der beste Ansatz, den ich mir vorstellen würde. Wenn Sie Overkill spielen wollen, verwenden Sie beide und lassen Sie den Benutzer entscheiden, was am sinnvollsten ist.

+2

Aber was ist mit Proxy-Servern, die die Entstehung der IP-Adresse maskieren? Würden Sie nicht nur die Zeitzone des letzten Proxy-Servers bekommen? – MetroidFan2002

+0

Ich habe die Antwort aktualisiert und darauf hingewiesen, dass der Proxy-Server ein Problem wäre, aber nur, wenn sie sich in einer anderen Zeitzone befinden. Danke, dass du das aufzeigst. –

0

Wie von Pierre-Luc Simard angegeben, was eine sehr gute Idee ist, können Sie die IP verwenden, um diese Informationen abzuleiten. Kredit geht zu ihm, aber ich werde einen weiteren Link zu einer kostenlosen Alternative hinzufügen, die ist. Es gibt auch eine sample code in PHP for the timezones und ich bin mir ziemlich sicher, dass Sie das Äquivalent in ihrem Java API finden werden.

Verwandte Themen