1

我的服务器在美国,rails 默认时区设置为“UTC”,来自印度的用户提交表单,rails 会将该用户的时区从印度转换为 UTC 并将其保存在 created_at 列中,还是会保存 UTC 当前时间?

4

1 回答 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 回答