4

基本的に、Rails を使用してユーザーのタイムゾーンを自動検出したいと考えています。ユーザーのブラウザー ( http://www.onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/ ) でこの JS コードを使用して、UTC オフセットを含むフォームを送信できます。タイム ゾーンがユーザーのタイム ゾーンで夏季または夏季以外に DST を観察するという事実。

サーバーにその情報を取得したら、一致するタイム ゾーンを選択します。Rails では、ActiveSupport::TimeZone.all を使用してタイム ゾーンのリストを取得できます。また、utc_offset メソッドのおかげで、utf オフセットでゾーンをフィルタリングできます。ただし、DST を使用する/使用しないタイムゾーンをフィルター処理する方法がわかりません。

たとえば、ユーザーがアムステルダムに住んでいるとします。UTC オフセットでフィルタリングすると、西中央アフリカだけでなく、ベルリン、ベルグラード、マドリッドなどのタイムゾーンも返されます。それらはすべて、西中央アフリカを除いて、アムステルダムのユーザーに適切なタイムゾーンになります (同じ時刻/日付を提供するため) が、夏に DST を実行しない西中央アフリカをフィルター処理する必要があります。

Railsでこれを行うにはどうすればよいですか? また、私の仮定は間違っていますか?

4

1 に答える 1

1

http://geokit.rubyforge.org/が役立つかもしれないと思いました。ユーザーの場所(または都市/国)の座標を取得できます。あなたがしなければならない唯一のことは、都市/国に基づいてタイムゾーンを推測することです.

于 2010-05-23T12:15:48.280 に答える