gpt4 book ai didi

ruby-on-rails - Time.now.midnight 对时区的敏感性

转载 作者:行者123 更新时间:2023-12-04 07:38:06 25 4
gpt4 key购买 nike

我有一些日常分析风格的记录来跟踪我网站上的使用情况,它们的工作方式如下:

  • 当“事件”发生时,站点会查找在 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/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com