我有一些日常分析式记录可以跟踪我网站上的使用情况,它们的工作原理如下:
Time.now.midnight
创建的记录。created_at
设置为Time.now.midnight
。以下是问题 - 根据客户的时区,Time.now.midnight
的记录会有所不同吗?如果是这样,假设上述非常简单的系统会崩溃,我是否正确?
如何解决这个问题,以便所有分析记录,无论触发创建的用户的时区如何,都会被固定一次?
注意:我认为在这种情况下,将created_at
字段设置为Date而不是Datetime可能会更好。让我们假设我们遇到了这个问题的日期时间。
答案 0 :(得分:2)
根据客户端时区,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"