两个日期之间的确切差异,以天和小时为单位

sum*_*mit 3 ruby time ruby-on-rails

我想在天确切的时间和时间两个日期之间的类似之间 Thu Jul 18 11:30:00 +0000 2013Sat Jul 20 10:30:00 +0000 2013.有区别1 day and 23 hours.Rails的ActionView模块包括两种方法

(1) distance_of_time_in_words
(2) distance_of_time_in_words_to_now
Run Code Online (Sandbox Code Playgroud)

但他们返回的结果就像1天或2天我也需要几个小时.

小智 7

如果您不想使用任何宝石,那么您可以简单地进行以下计算,以获得分钟和秒的精确差异 -

t1 = Time.now #date1
t2 = (Time.now - 10.hours) #date2

seconds = (t1.to_i - t2.to_i)
days = seconds / 86400;
hours = seconds / 3600;
minutes = (seconds - (hours * 3600)) / 60;
seconds = (seconds - (hours * 3600) - (minutes * 60));
Run Code Online (Sandbox Code Playgroud)


小智 6

插件dotiw可能对解决此问题很有用.

dotiw是Rails的插件,它会覆盖默认的distance_of_time_in_words并提供更准确的输出.