我对rails很陌生,我面临以下问题,我想知道访问我的控制器的客户端时区。有办法做到这一点吗?我想做一些类似以下代码的事情:
client_timezone = request.get_timezones
为了实现我想要的,我使用了两个宝石,一个叫Timezone,另一个叫GeoCoder。以便在服务器端获取时区。
使用地理编码器,我可以询问请求的纬度和经度,通过这条信息,我使用时区宝石来获得该坐标的时区。
这里有一些代码:
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:要使用时区宝石,您必须在地理名称中创建一个帐户
很好地通过了cookie中的时间,然后从中获取时区
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偏移量,或直接通过时区名称获取。