我正在使用Rails 3.2.8。当我生成带有时间字段或日期时间字段的脚手架时。 HTML表单字段预填充了UTC中的当前日期/时间。很好,它预先填充了当前的日期/时间,但因为它是UTC,我们必须每次更改时间7小时(有时需要将日期设置为1,也可能是月和年)。然后似乎UTC时间存储在数据库中,所以如果我在当地时间记录它,我也会有问题显示/编辑它。
我更好地看了Ruby documentation for the form helpers to deal with local time,但我没有看到任何相关内容。
在Rails中处理编辑和显示日期和时间的最佳方法是什么?
更新 :为了澄清,我喜欢UTC时间存储在数据库中的想法。我只希望time_select
和datetime_select
表单助手编辑用户本地时区的时间。当然,我想在用户的本地时区轻松显示时间。
答案 0 :(得分:0)
您必须设置时区,以before/around_filter
为单位在每个用户的基础上显示。必须这样做:
Time.zone = "Kyiv"
可在其API中找到一个示例:http://api.rubyonrails.org/classes/Time.html#method-c-zone-3D。
运行rake time:zones:all
以查看所有内容。
所有转换都必须在幕后为您处理。
答案 1 :(得分:0)
这对我过去有所帮助。你可以这样做:
Time.now.in_time_zone("Central Time (US & Canada)")