2016-08-05 56 views
0

早1天我有一個形式與booking_date,當我填寫與2016 3月1日的日期的形式,這些都是發送的參數:日期保存比形式

Parameters: {"utf8"=>"✓", "authenticity_token"=>"[FILTERED]", "pturnover"=>{"booking_date(3i)"=>"1", "booking_date(2i)"=>"3", "booking_date(1i)"=>"2016"}, "commit"=>"Opslaan", "id"=>"5"} 

但是,當我看保存爲數據庫後保存爲2016年2月29日:

=> #<Pturnover id: 5, booking_date: "2016-02-29 23:00:00" 

這是怎麼可能的,它是否與時區有關?

+0

'這是否與時區或東西''可能yes'? – hgsongra

回答

0

默認情況下,Rails在數據庫中保存日期時間爲utc時區。從/到字符串的日期時間轉換可能會考慮本地時區,無論是OS還是手動設置。本地和utc之間的轉換可能是您所看到的差異的原因。

由於Rails中的時區處理是一個相當大的主題,建議在某種程度上處理它。這裏有一些相關的資源:

RailsCasts #106 Time Zones (revised)

The Exhaustive Guide to Rails Time Zones

Working with time zones in Ruby on Rails

It's About Time (Zones)

0

您可以轉換在輸入的時間在保存之前,或者你可以轉換的時間在你的節目page.Conversion顯示像下面可能看起來時:

ActiveSupport::TimeZone.new("Asia/Tokyo").local(your_inputed_time_here) 

希望有所幫助。