代码之家  ›  专栏  ›  技术社区  ›  Tim Sullivan

Rails时区选择器:智能选择默认值

  •  2
  • Tim Sullivan  · 技术社区  · 15 年前

    在我的某个应用上注册帐户时,我们需要存储时区。我们正在使用时区选择器,这很好,但我想将默认值设置为可能是用户当前时区的值。

    在服务器上或使用javascript,是否有一种简单的方法将时区选择器设置为用户当前所在的时区?

    4 回复  |  直到 15 年前
        1
  •  4
  •   Jonathan Julian    15 年前

    在页面加载时,获取浏览器与格林尼治标准时间的偏移量,并使用此选项预先选择时区选择器。

    var offestFromGMT = - new Date().getTimezoneOffset() / 60
    
        2
  •  1
  •   Larry Page    15 年前

    您可以使用以下数据检查UTC偏移量: IP2Location 基于用户的IP地址。有了它,你应该能够轻松地完成你所寻找的。

        3
  •  1
  •   Andrew M. Andrews III    15 年前

    地理编码可能比什么都不做要好,但您必须小心,因为地理编码通常会告诉您ISP在哪里,而不是实际用户在哪里。getTimeZoneOffset()更有效,因为它使用的是浏览器TZ,而不是ISP TZ。

        4
  •  0
  •   Josh K    15 年前

    据我所知,用户时区或用户当前时间没有HTTP头。

    在我看来,处理这个用例的最佳方法是在服务器端使用IP地址地理编码,然后使用类似于 ip2address .

    这意味着,如果地理编码和时区解析速度较慢,那么服务请求的速度也会较慢。

    我也允许定制,因为服务不能100%地依赖(用户可能通过他们的公司防火墙vpning到您的站点)。另外,我只做一次这个解析,然后将结果存储在一个cookie中。