首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails: distance_of_time_NOT_in_words

Rails: distance_of_time_NOT_in_words
EN

Stack Overflow用户
提问于 2010-03-12 11:03:05
回答 1查看 2.6K关注 0票数 3

比如,distance_of_time(Time.now, Time.tomorrow).days = 1或者其他类似的东西?如果不是,那么实现这一目标的好方法是什么?我知道有"from_now“,但为什么没有from_whenever呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-13 04:57:35

我不知道有什么内置的通用解决方案,但如果只需要比较几天,你可以这样做

代码语言:javascript
复制
d = DateTime.now
d2 = DateTime.now.advance(:days => 1)
days_diff = (d2-d).to_i  # i.e., 1

使用Times,你可以在几秒钟内做同样的事情。从这些秒开始,您可以构建一个合理的周、日、小时和分钟差异模型:

代码语言:javascript
复制
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

(或者类似这样的东西,我还没有真正测试过代码,但您已经明白了--我希望如此)。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2430249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档