に比べて私はbooking_date
でフォームを持っていると私は2016年3月1日の日付でフォームに記入する際、これらが送信パラメータです保存しました保存後のデータベースでは、2016年2月29日に保存されます。日は1日早く形
=> #<Pturnover id: 5, booking_date: "2016-02-29 23:00:00"
これはどのように可能ですか、それはタイムゾーンなどと関連していますか?以下のような
に比べて私はbooking_date
でフォームを持っていると私は2016年3月1日の日付でフォームに記入する際、これらが送信パラメータです保存しました保存後のデータベースでは、2016年2月29日に保存されます。日は1日早く形
=> #<Pturnover id: 5, booking_date: "2016-02-29 23:00:00"
これはどのように可能ですか、それはタイムゾーンなどと関連していますか?以下のような
Railsはdatetimeをデフォルトでutc
タイムゾーンでデータベースに保存します。文字列との/からの日時変換では、ローカルタイムゾーン(OSのいずれか1つまたは手動設定)を考慮に入れることができます。ローカルとutc
の間の変換は、表示されている不一致の原因と考えられます。
Railsでのタイムゾーンの扱いはかなりの話題なので、ある程度深いところでアプローチすることをお勧めします。ここではいくつかの関連するリソースは次のとおりです。
RailsCasts #106 Time Zones (revised)
The Exhaustive Guide to Rails Time Zones
あなたが保存する前にinputed時間を変換することができたりショーpage.Conversionに表示したときにその時間を変換することができますことになります。
ActiveSupport::TimeZone.new("Asia/Tokyo").local(your_inputed_time_here)
お役に立てば幸いです。
'は、それがタイムゾーンか何かに関連している可能性が' 'yes'? – hgsongra