我基本上想使用 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 中做到这一点?另外,我的任何假设是错误的吗?