簡體   English   中英

Rails似乎是在created_at,updated_at值的錯誤時區創建對象

[英]Rails seems to be creating objects in wrong time zone for created_at, updated_at values

我剛剛使用表單創建了一個新對象,其updated_at和created_at值為

created_at: "2013-04-25 03:22:19", updated_at: "2013-04-25 03:22:19",

然而,這比我(PST)提前約7個小時。

Time.now.to_s
 => "2013-04-24 20:23:12 -0700" 

如何確保時區與用戶創建時區的位置一致?

您的created_atupdated_at值將從服務器寫入數據庫,因此它們將始終位於服務器或應用程序的時區中。 當服務器處理表單數據並保存到您的數據庫時,它不知道瀏覽器的時區。

您可以使用config.time_zone設置Rails時區,如@lulalala建議的那樣。

聽起來您有興趣在原生時區向用戶顯示時間。 你有兩個選擇:

將時區保存為用戶屬性后,您可以向用戶顯示您的時間,如下所示:

Model.created_at.in_time_zone(@current_user.time_zone)

我使用命令> Time.now.to_s檢查irb時區,時間是正確的,但應用程序將錯誤保存了3個小時。 所以..

我的解決方案是將config.time_zone = "Santiago"添加到config/environments/development.rb文件中。 時區列表在這里 ,我的條目是

"Santiago" => "America/Santiago"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM