2014-10-03 60 views
0

我有一個管理約會的應用程序。我希望從已知的開始日期開始的X周內同時安排每週預約。我正在使用下面的代碼來執行此操作。在Rails的夏令時中添加時間

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 

但是,這沒有考慮到夏令時的變化。做這個的最好方式是什麼?

+0

此應考慮到DST(因爲導軌3至少,可能更早)。結果與您的期望有什麼不同? – 2014-10-03 09:45:39

回答

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)