以天,小时和分钟计算时间差

Jay*_*Jay 3 time ruby-on-rails-3

更新:我正在更新问题以反映完整的解决方案.使用下面提到的time_diff gem Brett,以下代码有效.

码:

cur_time = Time.now.strftime('%Y-%m-%d %H:%M')
Time.diff(Time.parse('2011-08-12 09:00'), Time.parse(cur_time))
Run Code Online (Sandbox Code Playgroud)

谢谢,布雷特.

Mar*_*her 14

如果不使用外部gem,您可以使用以下方法轻松获得日期之间的差异:

def release(time)
  delta = time - Time.now

  %w[days hours minutes].collect do |step|
    seconds = 1.send(step)
    (delta / seconds).to_i.tap do
      delta %= seconds
    end
  end
end

release(("2011-08-12 09:00:00").to_time)
# => [7, 17, 37]
Run Code Online (Sandbox Code Playgroud)

这将返回一个天,小时和分钟的数组,并可以很容易地扩展到包括年,月和秒:

def release(time)
  delta = time - Time.now

  %w[years months days hours minutes seconds].collect do |step|
    seconds = 1.send(step)
    (delta / seconds).to_i.tap do
      delta %= seconds
    end
  end
end

release(("2011-08-12 09:00:00").to_time)
# => [0, 0, 7, 17, 38, 13]
Run Code Online (Sandbox Code Playgroud)


Bre*_*der 8

我之前用过time_diff很容易实现这种事情,你可能想看一下.

  • 我正在运行rails3.1.rc4 - 在我的Gemfile中放置'gem'time_diff'已经足够了,我没有明确要求它.版本0.2.1对我来说很好. (2认同)