在Rails中跨夏令时添加时间

时间:2014-10-03 08:14:45

标签: ruby-on-rails dst

我有一个管理约会的应用程序。我想在已知开始日期的X周内同时安排每周约会。我目前正在使用以下代码执行此操作。

for i in 0..(events.to_i-1)

  if frequency == "Weekly"
    interval = (i * 7).days
  else frequency == "Fortnightly"
    interval = (i * 14).days
  end

  appointment_date = start_date + interval
  //Create new appointment here.....

end

然而,这未考虑夏令时的变化。这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

您可以在Time类中使用since方法,它将处理您正在使用的区域的夏令时。

http://api.rubyonrails.org/classes/Time.html#method-i-since

appointment_date = start_date.since(以秒为单位的间隔)

>> Time.now
=> 2014-10-03 19:39:31 +1000
>> Time.now.since(24.hours)
=> 2014-10-04 19:39:49 +1000
>> Time.now.since(96.hours)
=> 2014-10-07 20:40:34 +1100 (With Daylight Time applied)