2017-01-03 43 views
0

我想在今天的meeting_time时显示“Today”。 meeting_time保存在UTC,然后转换为本地时区:“今天”rails。今天?以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

设置首先使用'Time.zone =“东部时间(美国和加拿大)”时区''调用之前meeting_time.today?' – jvnill

+1

@jvnill哇,这是如此直截了当,我觉得愚蠢...你可以请回答下面的答案,所以我可以接受。谢谢! – gwalshington

回答

3

在致电meeting_time.today?之前,先使用Time.zone = 'Eastern Time (US & Canada)'设置时区。不过要注意的是,这使得时区应用范围更广。通常只需在配置文件中执行此操作。

UPDATE

使用Time.use_zone('Eastern Time (US & Canada)')满足您的需求。

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

我怎样才能不通过应用程序设置它?我只是想比较一下这个控制器的时间。谢谢! – gwalshington

+1

@ gwalshington更新了答案 – jvnill

相关问题