我有一些日常分析风格的记录来跟踪我网站上的使用情况,它们的工作方式如下:
Time.now.midnight
创建的记录。 . created_at
设置为 Time.now.midnight
. 这是问题 - 是否
Time.now.midnight
根据客户的时区获得不同的记录?如果是这样,我假设上述非常简单的系统会崩溃是否正确?如何修复它,以便所有分析记录,无论触发创建的用户所在的时区如何,都与一次 Hook ?
注意:我想设置
created_at
在这种情况下,将字段改为日期而不是日期时间可能会更好。让我们假设我们在这个问题上坚持使用日期时间。
最佳答案
Time.now 不会根据客户端时区进行不同的记录。
Time.now 使用系统时区(又名服务器)返回新时间
要使用客户端特定的时区,您必须让用户选择他们的时区并使用 Time.current 或 Time.zone.now (它们做同样的事情)
created_at 通常固定到 UTC,所以你也不应该有任何问题。
(要改变这一点,你需要改变 Rails.root/config/application.rb)
config.time_zone = "whatever you want the ActiveRecord default to be"
关于ruby-on-rails - Time.now.midnight 对时区的敏感性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5465302/