2014-11-24 51 views
1

我有Time.now.to_i不同的輸出:Time.now.to_i不同,本地

  • 本地:1416844833
  • 生產(Heroku的):1416848333

我認爲它忽略時區,我也試過Time.now.utc.to_i,正如所料,它爲每個環境提供了相同的結果。

所以我想知道,造成這種差異的原因是什麼以及如何在兩種環境中獲得相同的時間?

+2

的'to_i值應該是UNIX'time_t'格式,應該是通用時間。也許你有一些時區問題?那些關閉了3500秒,或大約一個小時。也就是說,'Time.now.to_i - Time.now.utc.to_i'應該是0,或者偶爾是-1。你的UTC時間正確嗎? 'Time.now.utc'在兩臺機器上以可讀格式產生類似的結果嗎? – tadman 2014-11-24 17:10:51

回答

2

添加這個我相信你有環境之間有一個小時的時差....

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 

我相信你的本地時鐘是錯誤的....

1

檢查您的開發和生產時區 - 如果環境位於不同地區,則時區也會不同。爲了保持同步的config/application.rb

config.time_zone = "your_preffered_time_zone"