我的服务器在美国,rails 默认时区设置为“UTC”,来自印度的用户提交表单,rails 会将该用户的时区从印度转换为 UTC 并将其保存在 created_at 列中,还是会保存 UTC 当前时间?
问问题
1109 次
1 回答
2
它将以 UTC 保存当前时间。Created_at 和 updated_at 是 Active Records 内部时间戳列,因此它们绝不是用户输入。
此外,基本安全协议规定您永远不应使用客户端的时间设置,始终使用服务器。
Rails 会做一件事——它将使用网络服务器当前的 UTC 时间并将其存储在数据库中,而不是数据库服务器的当前时间。
默认情况下,时间以 UTC + 偏移格式存储。当您将默认时区指定为“孟买”时,它将返回为该时区转换的日期时间对象。
你也可以这样做:
Time.zone.parse(@post.created_at.zone)
于 2012-11-19T07:44:02.883 回答