2011-10-24 10 views
1

私の現在の状況は次のとおりです。Rails 3.1タイムゾーンが混乱していますか?

属性のタイムゾーンを持つユーザークラスがあります。

ユーザーがstart_time(3pm)とend_time(5pm)で講義を作成する場合、start_timeとend_timeは実際にはユーザーのタイムゾーンで午後3時と午後5時です。

def set_timezone 
    if current_user 
    Time.zone = current_user.time_zone or "Eastern Time (US & Canada)" 
    end 
end 

上記の講義は、4時間を追加しているようだデータベースに保存されている場合:私は次のことをやっている私のアプリケーションのコントローラで

。それをUTCに変換していますか?奇妙なことは、ビューに時刻を表示すると正しいことです(UTC時刻からEST時刻に変換されていると思います)。

ユーザが4pmを選択すると、データベースに4pmとして保存され、その時間をビューに表示すると4pmになります。私は現在何を間違っていますか?

EDIT:データベースに格納するときに、すべての時刻をすべてUTCに変換するように見えます。時間がかかるクエリを実行するまではOKです(手動でUTCに変換する必要があります)。

答えて

3
MySQL also has a time zone.

特に(強調鉱山):

現在のセッションのタイムゾーンの設定は、ゾーンと小文字が区別される時間値の表示及び記憶に影響を与えます。これには、NOW()やCURTIME()などのファンクションで表示される値や、TIMESTAMP列に格納されて取得される値が含まれます。 TIMESTAMP列の値は、現在のタイムゾーンからストレージ用のUTCに、UTCから取得用の現在のタイムゾーンに変換されます。

それについて何かする価値があるかどうかはわかりません。私は懐疑的だ。

関連する問題