我正在玩一个时区,我有一个简单的注册表格。用户注册后,我想用户显示他当前的时间,怎么做?
答案 0 :(得分:3)
您不能仅使用Ruby,因为这些信息在服务器端不可用。
1)如果您知道用户的位置,则可以进行地理位置定位和determine the timezone。但是,如果从geo数据库获得的ip范围有几个时区,则可能会出现问题。
2)另一种解决方案,你可以使用javascript来帮助。因此,使用javascript,您可以计算时区并将其设置为cookie,然后使用Ruby从请求对象访问。 (How to get timezone with Javascript)
答案 1 :(得分: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。