ruby-on-rails - Time.now 和 Created_at 不同? Ruby on Rails

标签 ruby-on-rails

我的网站部署在 heroku 上。 Time.now 将在今天返回,但记录的 created_at 字段(现在创建)将显示明天。我认为这与服务器时间有关?

有没有办法确保它们相同?
最好的事物,
艾略特

更新所以我做了这个“heroku rake time:zones:us”

它给了我:

    * UTC -10:00 *
Hawaii

* UTC -09:00 *
Alaska

* UTC -08:00 *
Pacific Time (US & Canada)

* UTC -07:00 *
Arizona
Mountain Time (US & Canada)

* UTC -06:00 *
Central Time (US & Canada)

* UTC -05:00 *
Eastern Time (US & Canada)
Indiana (East)

但是,当我在我的环境中设置 config.time_zone = 'UTC -05:00' 时,应用程序无法启动。有任何想法吗?

最佳答案

Rails 总是在数据库中存储 UTC 时间; created_at 字段本身应该正好被您的时区相对于 UTC 的变化所抵消。

每当您在应用程序中加载记录时,字段都会转换为 environment.rb 中指定的时区。它可能有这样的东西:

config.time_zone = 'UTC'

为了将时间正确转换为您的时区,您可以将此配置设置更改为与您的实际时区相匹配的设置。例如:
config.time_zone = 'Central Time (US & Canada)'

要查看可用区域,请在您的 rails 目录中发出“rake -D time”。这将为您提供有关如何获取用于配置的时区名称的说明。

关于ruby-on-rails - Time.now 和 Created_at 不同? Ruby on Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2512450/

相关文章:

ruby-on-rails - Ruby on Rails 模型和不同命名空间内的 Controller

ruby-on-rails - Rails 重命名模型中的 ID 列

ruby-on-rails - 如何让carrierwave在销毁记录时删除文件?

ruby-on-rails - ruby on rails 为模型属性更改添加功能

ruby-on-rails - Windows 上的 PostgreSQL 和 Ruby 问题

css - 如何在页面底部显示分页

ruby-on-rails - 如果变量为 nil 则分配字符串,否则附加

ruby-on-rails - 带条件的 to_json :except in rails

ruby-on-rails - 西里尔字符串 Я̆ Я̄ Я̈ 在 ruby​​ 和其他编程语言中返回长度 2 而不是 1

php - Ruby/Rails/Discourse 如何设置根目录