时间减法的结果?

时间:2014-04-21 14:26:18

标签: ruby-on-rails ruby

如何在“7秒”等单词中获得减法结果? strftime无效,因为结果是Fixnum。

a = Time.now
b = Time.now #a few seconds later

b - a
#7.17584 (seconds)

3 个答案:

答案 0 :(得分:2)

如果您使用的是Rails,则可以使用distance_of_time_in_words

from_time = Time.now
distance_of_time_in_words(from_time, from_time + 15.seconds, include_seconds: true)
#less than 20 seconds

答案 1 :(得分:0)

例如如下:

Time.at(Time.now - 7.seconds).strftime("%H:%M:%S")
# => "18:41:18" 

两次之间的区别:

Time.at(Time.now - (Time.now - 7.seconds)).strftime("%1S.%5N (seconds)")
# 6.99998

注意:实例方法-返回两次之间的秒数,Time.at返回从Integer或Float构造的Time对象,以秒为单位。 strftime%1S格式键允许您输出未填充秒数。

答案 2 :(得分:0)

根据您的具体需求,您也可以编写自己的方法,如下所示:

def diff_time_in_words(first_time, second_time)
  (second_time - first_time).round(0).to_s + " seconds"
end
# nil
a = Time.now
# 2014-04-21 09:55:55 -0500
b = Time.now
# 2014-04-21 09:56:02 -0500
diff_time_in_words(a, b)
# "8 seconds"

显然,这假设你的结果总是以秒为单位表示,但这是一个开始。如果你有兴趣,我可以继续。

相关问题