As in, 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 # i.e., 1
Using 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
(或者类似的东西,我还没有真正测试过代码,但你明白了 - 我希望)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)