2017-01-03 12 views
0

meeting_timeが今日のときに「今日」を表示したいとします。 meeting_timeはUTCで保存され、その後、ローカルタイムゾーンに変換されます。rails .today?タイムゾーンの代わりにUTCで評価する

<% meeting_time = meeting.meeting_time.in_time_zone("Eastern Time (US & Canada)") %> 

<% meeting_time.today? %>は前日午後7時から真と評価され、「今日は?」理由私が信じるUTC時間です。

「今日」の方法を別のタイムゾーンで使用するにはどうすればよいですか? 私はすでに試してみました:

<% meeting_time.today.in_time_zone("Eastern Time (US & Canada)")? %> 

が、これはエラーをスローします。

ありがとうございます!

+2

は 'meeting_time.todayを呼び出す前に' 'Time.zone =「東部標準時(米国およびカナダ)」を使用して最初のタイムゾーンを設定する?' – jvnill

+1

@jvnillすごいことは非常にまっすぐ進む、私はダム感じです...私は受け入れることができるように、以下の回答として投稿してください。ありがとう! – gwalshington

答えて

3

Time.zone = 'Eastern Time (US & Canada)'を使用してタイムゾーンを最初に設定してから、meeting_time.today?を呼び出してください。しかし、これはタイムゾーンアプリケーションを幅広く設定することに注意してください。通常は、これを設定ファイルで行います。

UPDATEニーズに

使用Time.use_zone('Eastern Time (US & Canada)')

Time.use_zone('Eastern Time (US & Canada)') do 
    meeting_time.today? 
end 
+0

どうすればアプリ全体に設定できないのですか?私はちょうどこの1つのコントローラの時間を比較したい。ありがとう! – gwalshington

+1

@gwalshingtonが答えを更新しました – jvnill

関連する問題