私はRailsにかなり慣れていないので、次の問題に直面しています。コントローラーにアクセスしているクライアントのタイムゾーンを知りたいです。それを行う方法はありますか?次のコードのようなことをしたい:
client_timezone = request.get_timezones
私はRailsにかなり慣れていないので、次の問題に直面しています。コントローラーにアクセスしているクライアントのタイムゾーンを知りたいです。それを行う方法はありますか?次のコードのようなことをしたい:
client_timezone = request.get_timezones
目的を達成するために、 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でアカウントを作成する必要があります
クッキーであなたの時間をうまく通過し、それからタイムゾーンを取得します
var offset = (new Date()).getTimezoneOffset()
var date = new Date();
date.setTime(date.getTime()+3600000);
document.cookie = "utc_offset="+offset+"; expires="+date.toGMTString();+"; path=/";
UTCでのユーザータイムゾーンのオフセットがあります
またはユーザーのタイムゾーン情報をデータベースに保存してから取得します
しかし、私はあなたの要件が最初のものだと思います
幸運を
ミニプロジェクトを検索しているときに、 TimeZoneDBの代替APIも見つけました。
緯度と経度でクエリしてGMTオフセットを取得するか、タイムゾーン名で直接クエリを実行できます。