2

我正在玩时区,我有一个简单的注册表单。用户注册后,我想显示他当前的时间,怎么做?

4

2 回答 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 回答