如何在“7秒”等单词中获得减法结果? strftime
无效,因为结果是Fixnum。
a = Time.now
b = Time.now #a few seconds later
b - a
#7.17584 (seconds)
答案 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"
显然,这假设你的结果总是以秒为单位表示,但这是一个开始。如果你有兴趣,我可以继续。