Ich frage mich, ob es eine einfache Möglichkeit gibt, die lokale Zeitzone eines Benutzers in Rails mit nur einer IP-Adresse nachzuschlagen. Ich möchte nicht, dass Benutzer ihre Zeitzone selbst eingeben müssen. Muss ich JavaScript verwenden oder gibt es einen anderen Weg?Suchen nach lokalen Zeitzonen in Schienen
Antwort
The maxmind GeoLite IP->city database scheint Zeitzonen zu unterstützen und es gibt a FAQ on their site referring to this. Sie können entweder einen zweistufigen Prozess aus IP-> Standort und Ort-> Zeitzone mithilfe der Maxmind GeoLite City-Datenbank ausführen und dann eine der in den FAQ bereitgestellten Lösungen verwenden.
Oder für ein einfaches 1-Schritt-Javascript, mit getTimezoneOffset()
scheint the crux of the solution zu sein.
Es scheint mehrere Anbieter zu geben, die APIs und abrufbare Dienste anbieten, um von IP-Adresse zu Ort zu gehen, und klar, sobald Sie haben, dass das Bestimmen der Zeitzone nur eine weitere Suche ist.
Ihre Alternative zur Verwendung von Javascript, um den Browser zu fragen, "wo bin ich, was ist die Zeitzone" und Ajaxing, dass auf Ihren Server klingt auch plausibel.
Natürlich kann ein ausreichend bestimmter Benutzer seinen Weg zu einer anderen IP-Adresse vortäuschen, aber das ist Ihnen vermutlich nicht so wichtig ... ihre Wahl.
Sie können die IP-Adresse-zu-Zeit-API verwenden, um die Zeit nach IP-Adresse zu finden. Suchen Sie hier nach http://worldtimeengine.com/ für weitere Details.
Dan