我想在默认时区中保存事件,即每当用户提交事件时,它将转换为默认时区,并将保存在数据库中。
每当用户请求事件时,系统将找到该用户时区并在该用户时区中转换日期(从默认格式)并将其显示给用户。
我很难从哪里开始,我看到了许多笔记和文件,但无法弄清楚完成这一过程的完整过程。
我看到了这段代码,但无法理解如何使用它:
before_filter :set_time_zone
def set_time_zone
Time.zone = current_user.time_zone if current_user
end
答案 0 :(得分:3)
数据库中的默认时区是UTC。
有两种方法可以做到:
对于选项1,Rails对时区有很好的支持。 #all method将允许您创建一个下拉列表供他们选择。然后使用用户记录将其保存在数据库中。
选项2对用户的工作量较少,但也不太准确。有一些服务可以将IP转换为时区。
要显示给定时区的时间,请使用Time#in_time_zone,或者您可以设置Time.zone
,如上所示,它应该正确显示。