计算开始时间和结束时间之间的小时数

时间:2017-03-20 18:58:46

标签: ruby-on-rails ruby

我正在尝试计算一个事件的开始时间和结束时间之间的小时数,当用户注册某个事件时,它会达到目标。现在这个方法似乎有效,除了我得到一个负数。我假设它与这行代码有关

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

1 个答案:

答案 0 :(得分:1)

我认为你的时间倒退了:

h = ((event.end_time - event.start_time) / 1.hour).round

除非您的活动在开始之前结束,否则会产生负值。就像它从4开始到6结束那样是6-4或2小时,而不是4-6。