我有一个时间对象 T。向 T 添加 N 天的合理方法是什么?
我想出的最好的感觉有点折磨:
require 'date'
def add_days(time, days)
time.to_date.next_day(days).to_time
end
P.S.:如果您在美国,正确答案必须满足:
add_days(Time.new(2013, 3, 10, 0), 1) == Time.new(2013, 3, 11, 0)
如果您在欧盟,则正确答案必须满足:
add_days(Time.new(2013, 3, 31, 0), 1) == Time.new(2013, 4, 1, 0)
P.P.S:这是一个 Ruby 问题,而不是 Rails 问题。
最佳答案
Time
有一个 +
method接受秒。
N = 3
t = Time.now + N * 86400 # 24 * 60 * 60
或者,如果您引入 ActiveSupport,则更容易
require 'active_support/core_ext'
t = Time.now + N.days
显然你可以制作自己的助手
class Fixnum
def days
self * 86400
end
end
t = Time.now # => 2013-01-31 16:06:31 +0700
t + 3.days # => 2013-02-03 16:06:31 +0700
关于ruby - 如何将 N 天添加到时间 T(考虑夏令时)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14621878/