我想在几个小时内写一个简单的函数:
自创建以来已经过了多长时间?
我的尝试:
-time = DateTime.now.hour - (self.created_at.hour)
有没有人知道如何在Ruby on Rails中执行此操作?
答案 0 :(得分:23)
Rails通常使用Time
,而非DateTime
。你为什么不Time.now - self.created_at
?然后你可以通过除以3600将秒数转换为数小时。
答案 1 :(得分:17)
知道了!首先,您必须确保您的数据与从Time或DateTime中减去的数据相同。我选择了时间。然后用Ruby的内置时间方法划分它。这可以转化为多少天,但也可以是1.hour。等
(Time.now - self.created_at.to_time)/1.day
答案 2 :(得分:7)
您正在寻找time_ago_in_words(from_time,include_seconds = false)函数。以下是文档中的一些示例:
time_ago_in_words(3.minutes.from_now) # => 3 minutes
time_ago_in_words(Time.now - 15.hours) # => 15 hours
time_ago_in_words(Time.now) # => less than a minute
from_time = Time.now - 3.days - 14.minutes - 25.seconds # => 3 days