Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rails datetime\u选择时区_Datetime_Ruby On Rails 4_Timezone - Fatal编程技术网

Rails datetime\u选择时区

Rails datetime\u选择时区,datetime,ruby-on-rails-4,timezone,Datetime,Ruby On Rails 4,Timezone,我正在编写一个简单的日历应用程序,在时区方面遇到了麻烦。对于尽可能多的好的日期和时间助手,动作视图和活动记录肯定不能很好地处理时区 我有一个约会模型,带有约会时间属性,它是一个日期时间 我当前的问题是在表单标记中使用datetime\u select编辑约会时间 <%= datetime_select :appointment_time, @appt.appt_time,ampm: true %> def appt_time appointment_time.in_time_z

我正在编写一个简单的日历应用程序,在时区方面遇到了麻烦。对于尽可能多的好的日期和时间助手,动作视图和活动记录肯定不能很好地处理时区

我有一个约会模型,带有约会时间属性,它是一个日期时间

我当前的问题是在表单标记中使用datetime\u select编辑约会时间

<%= datetime_select :appointment_time, @appt.appt_time,ampm: true %>

def appt_time
  appointment_time.in_time_zone(time_zone) #this is the appointment owners time zone
end

def应用程序时间
约会时间。在时区(时区)#这是约会所有者的时区
结束
使用UTC中的当前日期和时间而不是约会日期和时间进行选择
appt_time
确实会被调用,并返回为时区调整的正确日期和时间


文档中没有提到时区,实现它的最佳方法是什么?

看起来问题在于您的select标记,而不是时区偏移量。看起来你想要

<%= datetime_select "appointment", "appointment_time", default: @appt.appt_time, ampm: true %>                                                                                                         


太好了,谢谢。希望这也能用于生产。玩弄它,前两个论点中的内容似乎根本不重要。它与前两个参数中的“appt_time”一样有效。再次感谢!很高兴它成功了。您可能还需要在应用程序控制器中设置Time.zone方法。如果设置Time.zone='Hawaii',则返回datetime对象的后续调用将自动应用指定的时区偏移量。前两个参数将在您想要更新时计算-它们需要正确映射到params哈希中的对象和方法。