【问题标题】:Time.now.to_i different on heroku and locallyHeroku 和本地的 Time.now.to_i 不同
【发布时间】:2015-01-22 11:27:20
【问题描述】:

Time.now.to_i 有不同的输出:

  • 本地:1416844833
  • 生产(heroku):1416848333

我认为它忽略了时区,我也尝试了Time.now.utc.to_i,并且正如预期的那样,它为每个环境提供了相同的结果。

所以我想知道,是什么导致了这种差异,我如何才能在两种环境中获得相同的时间?

【问题讨论】:

  • to_i 值应该是 UNIX time_t 格式并且应该是通用时间。也许你有一些时区问题?那些关闭了 3500 秒,或大约一个小时。也就是说,Time.now.to_i - Time.now.utc.to_i 应该是 0,或者偶尔会是 -1。您的 UTC 时间是否正确? Time.now.utc 在两台机器上以人类可读的格式产生相似的结果吗?

标签: ruby-on-rails ruby heroku time timezone


【解决方案1】:

我相信你的环境之间有一小时的差异......

Time.at(1416844833)
=> 2014-11-24 14:00:33 -0200
Time.at(1416848333)
=> 2014-11-24 14:58:53 -0200

但是,Time.now.to_i 总是返回 UTC,所以我认为这不是时区问题:

Time.now
=> 2014-11-24 15:27:08 -0200
Time.now.utc
=> 2014-11-24 17:27:15 UTC
Time.now.to_i
=> 1416850043
Time.at(1416850043)
=> 2014-11-24 15:27:23 -0200

我相信你的本地时钟是错误的......

【讨论】:

    【解决方案2】:

    检查您的开发和生产时区 - 如果环境位于不同的区域,则时区也会有所不同。为了使它们保持同步,请将其添加到 config/application.rb

    config.time_zone = "your_preffered_time_zone"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-05
      • 2014-12-05
      • 2017-04-05
      • 1970-01-01
      • 2014-01-22
      • 2013-06-24
      • 1970-01-01
      • 2011-02-27
      相关资源
      最近更新 更多