如何在rails中存储时区信息

时间:2014-03-30 19:10:08

标签: ruby-on-rails solr timezone offset sunspot

在我的rails应用程序中,用户可以创建问题并发布,任何来自任何国家/地区的人都可以对此做出响应。  我们正在为此设计数据库结构。所以计划使用一些js获取用户时区,同时回答转换该时间并存储在单独的列中(tz_created_at)。  因此在日期创建时将以utc格式存储,而在另一列中说tz_created_at将datetime存储为用户的时区转换时间。 (即)在created_at列中我有  IRB(主):013:0> DateTime.now.utc =>太阳,2014年3月30日18:54:46 +0000

在tz_created_at列中我有  IRB(主):015:0> DateTime.now + 6.hours(来自用户的时区)=>星期一,2014年3月31日06:58:31 +0600

我们正在使用太阳黑子solr来显示一段时间内的一些统计数据。

所以在查询特定问题的答案时,我将在tz_created_at列中搜索。这种方法是否正确。如果我错了请纠正我

1 个答案:

答案 0 :(得分:0)

您可能希望将日期时间存储为UTC,然后将用户的时区存储在另一列中,而不是这样做。通过这样做,您可以随时更改时区,而不会影响实际时间(例如,用户移动国家/地区)。当您向用户显示时间时,您可以轻松地将时间转换为其区域以显示它。

如果您是铁路广播的订阅者,那么video on it there,但如果您不是订阅者an older one那么免费观看这将为您提供最佳实践的一般概念。