![](/img/trans.png)
[英]Rails 4 - Want To Have Rails Use My Local Time Zone for 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_at
和updated_at
值將從服務器寫入數據庫,因此它們將始終位於服務器或應用程序的時區中。 當服務器處理表單數據並保存到您的數據庫時,它不知道瀏覽器的時區。
您可以使用config.time_zone
設置Rails時區,如@lulalala建議的那樣。
聽起來您有興趣在原生時區向用戶顯示時間。 你有兩個選擇:
在注冊時詢問您的用戶時區(或指定默認區域並允許用戶編輯)
使用javascript檢測時區並向您的服務器報告( http://josephscott.org/archives/2009/08/detecting-client-side-time-zone-offset-via-javascript/ ) - 不保證是正確的
將時區保存為用戶屬性后,您可以向用戶顯示您的時間,如下所示:
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.