3

私はRailsにかなり慣れていないので、次の問題に直面しています。コントローラーにアクセスしているクライアントのタイムゾーンを知りたいです。それを行う方法はありますか?次のコードのようなことをしたい:

client_timezone = request.get_timezones
4

3 に答える 3

5

目的を達成するために、 Timezoneと呼ばれるgemとGeoCoderと呼ばれるgemの2つのgemを使用しました。サーバー側でタイムゾーンを取得するため。

ジオコーダーを使用すると、リクエストの緯度と経度を要求できます。この情報を使用して、タイムゾーンgemを使用してその座標のタイムゾーンを取得します。

ここにいくつかのコードがあります:

def my_method
    my_latitude = request.location.latitude
    my_longitude = request.location.longitude
    timezone = Timezone::Zone.new :latlon => [my_latitude, my_longitude]
    timezone_offset = timezone.offset
    ....
end

PS:タイムゾーンgemを使用するには、geonamesでアカウントを作成する必要があります

于 2012-09-04T19:24:08.420 に答える
2

クッキーであなたの時間をうまく通過し、それからタイムゾーンを取得します

  var offset = (new Date()).getTimezoneOffset()
  var date = new Date();
  date.setTime(date.getTime()+3600000);
  document.cookie = "utc_offset="+offset+"; expires="+date.toGMTString();+"; path=/";

UTCでのユーザータイムゾーンのオフセットがあります

またはユーザーのタイムゾーン情報をデータベースに保存してから取得します

しかし、私はあなたの要件が最初のものだと思います

幸運を

于 2012-08-24T18:17:34.747 に答える
0

ミニプロジェクトを検索しているときに、 TimeZoneDBの代替APIも見つけました。

緯度と経度でクエリしてGMTオフセットを取得するか、タイムゾーン名で直接クエリを実行できます。

于 2012-09-21T14:00:10.603 に答える