我有Time.now.to_i
不同的輸出:Time.now.to_i不同,本地
- 本地:1416844833
- 生產(Heroku的):1416848333
我認爲它忽略時區,我也試過Time.now.utc.to_i
,正如所料,它爲每個環境提供了相同的結果。
所以我想知道,造成這種差異的原因是什麼以及如何在兩種環境中獲得相同的時間?
我有Time.now.to_i
不同的輸出:Time.now.to_i不同,本地
我認爲它忽略時區,我也試過Time.now.utc.to_i
,正如所料,它爲每個環境提供了相同的結果。
所以我想知道,造成這種差異的原因是什麼以及如何在兩種環境中獲得相同的時間?
添加這個我相信你有環境之間有一個小時的時差....
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
我相信你的本地時鐘是錯誤的....
檢查您的開發和生產時區 - 如果環境位於不同地區,則時區也會不同。爲了保持同步的config/application.rb
config.time_zone = "your_preffered_time_zone"
的'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