Ruby on rails 3 提交时的时间格式

Ruby on rails 3 提交时的时间格式,ruby-on-rails-3,if-statement,time-select,Ruby On Rails 3,If Statement,Time Select,我有一个如下的表单输入代码: <%= f.time_select :delivery_time, {:default => 5.hours.from_now, :minute_step => 5, :ampm => true}, {:class=>"input-small"} %> 但它给出了错误,因为交付时间为零:类。但当打印交付时间为:2013-04-09 23:00:00 UTC时 不知道如何让它工作。有人能帮忙吗?你可能会变出一些日期值,这样你就可

我有一个如下的表单输入代码:

 <%= f.time_select :delivery_time, {:default => 5.hours.from_now, :minute_step => 5, :ampm => true}, {:class=>"input-small"} %>
但它给出了错误,因为交付时间为零:类。但当打印交付时间为:2013-04-09 23:00:00 UTC时


不知道如何让它工作。有人能帮忙吗?

你可能会变出一些日期值,这样你就可以调用
#between?
。只提取需要比较的日期部分会更简单、更能揭示意图

def late_order?(time)
  time.hour > 21
end

delivery_time = Time.new(2012, 1, 1, 22)
total = 300
total += 75 if late_order?(delivery_time)

puts "total for order: #{total}"   #=> 375

可能重复@DaveNewton您能告诉问题的解决方案吗?我不知道为什么你的
交货时间是零,我有点怀疑,因为你可以打印它(你说)。可能是你如何建造这个物体,我不知道。在数据库中输入23:00的值,在打印时给出类似于2013-04-09 23:00:00 UTC的值。根据API,尝试:忽略_日期,但给出多重分配错误。不了解如何比较给定范围内的交货时间或否。
def late_order?(time)
  time.hour > 21
end

delivery_time = Time.new(2012, 1, 1, 22)
total = 300
total += 75 if late_order?(delivery_time)

puts "total for order: #{total}"   #=> 375