【问题标题】:Adding time across daylight saving time in Rails在 Rails 中添加夏令时时间
【发布时间】:2014-11-28 07:25:14
【问题描述】:

我有一个管理约会的应用程序。我想在已知开始日期的 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

但是,这没有考虑夏令时的变化。最好的方法是什么?

【问题讨论】:

  • 这应该考虑到 DST(至少从 rails 3 开始,可能更早)。结果与您的预期有何不同?

标签: ruby-on-rails dst


【解决方案1】:

您可以在 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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 2017-07-11
    • 2013-01-31
    • 1970-01-01
    相关资源
    最近更新 更多