我正在玩时区,我有一个简单的注册表单。用户注册后,我想显示他当前的时间,怎么做?
问问题
1414 次
2 回答
3
你不能只用 Ruby 来做,因为这样的信息在服务器端是不可用的。
1)如果您知道用户的位置,您可以进行地理定位并确定时区。但是,如果您从地理数据库获得的 IP 范围有几个时区,则可能会出现问题。
2)另一种解决方案,您可以使用javascript来帮助。因此,您可以使用 javascript 计算时区并将其设置为 cookie,然后从请求对象使用 Ruby 进行访问。(如何使用 Javascript 获取时区)
于 2012-04-13T14:56:14.610 回答
1
您可以在注册期间向用户询问他们当前的时区,并将其与他们的用户详细信息一起保留。
ActiveSupport(包含在 Rails API 中)有一种很好的处理时区的方法,您可以使用 *in_time_zone* 将当前时间转换为不同时区中的时间。
举个例子
Time.now.in_time_zone("America/Guyana")
Time.now.in_time_zone(8)
可以通过此 API 文档找到 time_zone 键:http: //api.rubyonrails.org/classes/ActiveSupport/TimeZone.html
有关更多信息,请参见 TimeWithZone,http: //api.rubyonrails.org/classes/ActiveSupport/TimeWithZone.html#method-i-in_time_zone 。
于 2012-04-13T15:00:29.117 回答