如何获取请求时区?

McS*_*Sas 3 ruby timezone ruby-on-rails-3

我在rails中很新,我面临以下问题,我想知道访问我的控制器的客户端时区.有没有办法做到这一点?我想做类似以下代码的事情:

client_timezone = request.get_timezones
Run Code Online (Sandbox Code Playgroud)

McS*_*Sas 5

为了实现我想要的,我使用了两个宝石,一个叫做Timezone,另一个叫做GeoCoder.为了获得服务器端的时区.

使用地理编码器,我可以询问请求的纬度和经度,并使用这条信息,我使用时区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
Run Code Online (Sandbox Code Playgroud)

PS:要使用timezone gem,你必须在地理名称中创建一个帐户