7

I just created a new object using a form and its updated_at and created_at values are

created_at: "2013-04-25 03:22:19", updated_at: "2013-04-25 03:22:19",

However that is ~7 hours ahead of where I am (PST).

Time.now.to_s
 => "2013-04-24 20:23:12 -0700" 

How can I make sure the time zone is consistent with wherever a user is creating it from?

4

2 回答 2

15

您的created_atupdated_at值是从您的服务器写入数据库的,因此它们将始终位于您的服务器或应用程序的时区中。当服务器处理表单数据并保存到您的数据库时,它不知道浏览器的时区。

config.time_zone正如@lulalala 建议的那样,您可以使用 设置 Rails 时区。

听起来您有兴趣在他们的本地时区向用户显示时间。为此,您有两种选择:

将时区保存为用户属性后,您可以像这样向用户显示您的时间:

Model.created_at.in_time_zone(@current_user.time_zone)
于 2013-04-25T06:27:13.543 回答
3

irb我用命令检查时区,> Time.now.to_s时间是正确的,但应用程序将其保存错误 3 小时。所以..

我的解决方案是添加config.time_zone = "Santiago"config/environments/development.rb文件中。时区列表在这里,我的条目是

"Santiago" => "America/Santiago"
于 2014-02-27T19:57:49.873 回答