我想用Rails自动检测用户的时区。我可以在用户的浏览器中使用此JS代码(http://www.onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/),以用户的时区发送包含UTC偏移量和夏季是否观察DST的表单。
一旦我在服务器上获得这些信息,我想选择匹配的时区。在Rails中,我可以使用ActiveSupport::TimeZone.all获取时区列表。此外,我还可以通过utc_offset方法过滤时区。但是,我不知道如何过滤观察或不观察DST的时区。
例如,假设用户住在阿姆斯特丹。按UTC偏移量过滤将返回柏林、贝尔格莱德、马德里等时区以及西非中部。除了西非中部之外,所有这些时区都适合阿姆斯特丹的用户(因为它们提供相同的时间/日期),但我需要过滤不执行夏季DST的西非中部。我该如何在Rails中实现这个功能?另外,我的任何假设是否错误?