我正在尝试计算一个事件的开始时间和结束时间之间的小时数,当用户注册某个事件时,它会达到目标。现在这个方法似乎有效,除了我得到一个负数。我假设它与这行代码有关
h = ((event.start_time - event.end_time) / 1.hour).round
这是我对这个模型的整个控制器,希望有人可以帮我解决这个问题。
class UserEventsController < ApplicationController
def create
event = Event.find(params[:id])
current_user.events << event
hours = 0
goals = current_user.goals
current_user.events.each do |event|
h = ((event.start_time - event.end_time) / 1.hour).round
hours += h
current_user.update_attributes(hours: h)
end
redirect_to organization_path(event.organization)
end
end
答案 0 :(得分:1)
我认为你的时间倒退了:
h = ((event.end_time - event.start_time) / 1.hour).round
除非您的活动在开始之前结束,否则会产生负值。就像它从4开始到6结束那样是6-4或2小时,而不是4-6。