如何在rails中添加Time.now的时间

时间:2014-12-12 12:04:57

标签: ruby-on-rails ruby-on-rails-4

在控制器中:

@delivery_time=(Time.now + @hotel.deliverytime.to_i).strftime("%I:%M")

其中deliverytime=00:30:00

我得到@delivery_time的错误答案。我在添加2014-12-12 05:50:00Time.now=2014-12-12 17:20:00后收到deliverytime=00:30:00。答案应为2014-12-12 17:50:00。我做错了什么?

2 个答案:

答案 0 :(得分:0)

尝试这样: -

duration = @hotel.deliverytime.hour * 60 * 60 + @hotel.deliverytime.min * 60 + @hotel.deliverytime.sec
@delivery_time=(Time.now + duration).strftime("%I:%M")

答案 1 :(得分:0)

Rails允许您添加特定数量的天,小时,分钟等

Time.now+30.minutes

您也可以

Time.now+1.hour
Time.now+1.day

如果您的时间是00:00:00字符串,则可以执行类似

的操作
@delivery_time=(Time.now + (@hotel.deliverytime.split(':')[0].to_i*3600 + @hotel.deliverytime.split(':')[1].to_i*60 + @hotel.deliverytime.split(':')[2].to_i).seconds ).strftime("%I:%M")