你如何从日期时间中减去?

Tri*_*rip 17 ruby datetime ruby-on-rails

我想写几个小时的简单函数:

自创建以来已经过了多少时间?

我的尝试:

-time = DateTime.now.hour - (self.created_at.hour)
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何在Ruby on Rails中执行此操作?

mck*_*eed 24

Rails通常使用 Time,而不是DateTime.你为什么不这样做Time.now - self.created_at?然后你可以通过除以3600从秒转换为小时.


Tri*_*rip 18

得到它了!.首先,您必须确保您的数据与从Time或DateTime中减去的数据相同.我选择了时间.然后用Ruby的内置时间方法划分它.这可以转化为多少天,但也可以是1.hour.等等

(Time.now - self.created_at.to_time)/1.day
Run Code Online (Sandbox Code Playgroud)


sos*_*orn 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
Run Code Online (Sandbox Code Playgroud)

  • 我不是在找文字.我正在研究如何从另一个DateTime中减去DateTime (4认同)