Rails:distance_of_time_NOT_in_words

就像在, distance_of_time(Time.now, Time.tomorrow).days = 1或沿着这些线的东西? 如果没有,那么实现这一目标的好方法是什么? 我知道有“from_now”,但为什么不会有from_whenever?

我不知道内置的通用解决方案,但如果只需要比较几天,就可以做到

 d = DateTime.now d2 = DateTime.now.advance(:days => 1) days_diff = (d2-d).to_i # ie, 1 

使用Time您可以在几秒钟内执行相同的操作。 从这几秒钟开始,您可以建立合理的周,日,小时和分钟差异模型:

 diff = (Time.now - Time.now.advance(:days => 38, :hours=>2, :minutes => 23)).abs day_diff = diff % 1.week.seconds weeks = (diff - day_diff) / 1.week.seconds hour_diff = day_diff % 1.day.seconds days = (day_diff - hour_diff) / 1.day.seconds minute_diff = hour_diff % 1.hour.seconds hours = (hour_diff - minute_diff) / 1.hour.seconds second_diff = minute_diff % 1.minute.second minutes = (minute_diff - second_diff) / 1.minute.seconds fractions = second_diff % 1 seconds = (second_diff - fractions) s=Struct.new(:weeks, :days, :hours, :minutes, :seconds) s.new(weeks, days, hours, minutes, seconds) s.weeks # 5 s.days # 2 s.minutes # 23 s.seconds # 0 

(或类似的东西,我还没有真正测试过代码,但你明白了 – 我希望如此)。