4

我基本上想使用 Rails 自动检测用户的时区。我可以在用户的​​浏览器( http://www.onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/ )上使用这个 JS 代码来发送一个带有 UTC 偏移量的表单以及在用户所在的时区中时区是否在夏季遵守 DST 的事实。

在服务器中获得该信息后,我想选择匹配的时区。在 Rails 中,我可以使用 ActiveSupport::TimeZone.all 获取时区列表。此外,由于 utc_offset 方法,我可以通过 utf 偏移量过滤区域。但是,我不知道如何过滤执行/不遵守 DST 的时区。

例如,假设用户住在阿姆斯特丹。按 UTC 偏移量过滤将返回柏林、贝尔格莱多、马德里等时区以及西中非。对于阿姆斯特丹的用户来说,除了西中非之外,所有这些时区都是合适的时区(因为它们提供相同的时间/日期),但我需要过滤西中非,它在夏季不执行 DST。

我怎样才能在 Rails 中做到这一点?另外,我的任何假设是错误的吗?

4

1 回答 1

1

我想也许http://geokit.rubyforge.org/会有所帮助。您可以获得用户位置(或城市/国家)的坐标。您唯一需要做的就是根据城市/国家/地区猜测时区。

于 2010-05-23T12:15:48.280 回答