你如何在Ruby中实现1.day.ago

时间:2014-01-27 21:28:45

标签: ruby-on-rails ruby date helper

你们可能已经猜到了,这是一个采访问题。但我不会透露哪家公司。我被要求实施

1.day.ago
在Ruby中

这是Rails中的日期帮助器,但Ruby中不存在此功能。

2 个答案:

答案 0 :(得分:8)

所有它*返回一天中的秒数,乘以self:

class Fixnum
  def day
    self * (60 * 60 * 24) # seconds * minutes * hours
  end
end


# 10.days => 'self' is 10, so 10 * 60 * 60 * 24

然后,.agoTime.now

减去那么多秒
class Fixnum
  def ago
    Time.now - self
  end
end

# 10.days.ago == Time.now - (10 * 60 * 60 * 24) 

*这实际上它所做的一切;实际上它返回一个代表给定持续时间的代理对象。数学也明显更复杂

答案 1 :(得分:-1)

这是一种方法:

Time.now-86400
#=> 2014-01-26 16:54:07 -0500

86400是一天中的秒数。

免责声明:此示例显然不包括因夏令时而导致的时间变化。 (自担风险使用。)