ruby/rails中是否有一种方法可以对日期和时间以及时区进行加/减,并且输出是以天、小时、分钟和秒的形式而不是以datatime格式进行的?
t1 = "2012-05-05 00:00:02 -0400"
t2 = "2012-05-04 00:00:00 -0500"
time_diff = (Time.now() - Time.parse(t1)).to_s
#Or
time_diff = (Time.parse(t1) - Time.parse(t2)).to_s
我在找
1 Day, 01:59:58
结果应该
#of Days HH:MM:SS
格式 最佳答案
据我所知,ruby和rails没有任何内置的功能。有distance_of_time_in_words
,但它给出的时间比你看起来要模糊(例如“大约7天”)。
不过,编写一个方法来实现这一点相当简单。如果以秒为单位有差异,这将为您提供差异中的天、小时和秒:
def time_length seconds
days = (seconds / 1.day).floor
seconds -= days.days
hours = (seconds / 1.hour).floor
seconds -= hours.hours
minutes = (seconds / 1.minute).floor
seconds -= minutes.minutes
{ days: days, hours: hours, minutes: minutes, seconds: seconds }
end
time_length(Time.parse(t1) - Time.parse(t2))
#=> {:days=>0, :hours=>23, :minutes=>0, :seconds=>2.0}
关于ruby - Ruby-Rails-减去日期时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10466789/