2010-06-14 89 views
0

如果在數據庫(MySQL)中,我有一個日期時間列(例如1899-12-30 19:00:00),我該如何總結1天?Ruby on Rails - 使用時間

http://corelib.rubyonrails.org/classes/Time.html#M000240

如果我想增加1天,這實際上增加了60 * 60 * 24天(86400天)

r=Record.find(:first) 
=>Sat, 30 Dec 1899 19:00:00 -0600 
r.date + (60*60*24) 
=>Fri, 20 Jul 2136 19:00:00 -0600 

但是,如果我這樣做,這實際上增加了1天:

t = Time.now 
=>Mon Jun 14 10:32:51 -0600 2010 
t + (60 * 60 * 24) 
=>Tue Jun 15 10:33:21 -0600 2010 

我想它與格式有關......我如何做這項工作?

回答

2

你實際上增加了86,400秒(60秒* 60分鐘* 24小時)。

的ActiveSupport有內建的輔助方法來處理時間:

Time.now + 1.day + 15.hours
+0

這個伎倆,非常感謝你! – miligraf 2010-06-14 17:19:21

0

在Rails,

它使用起來非常簡單倍。

 
r = Record.find(:first) 

r.created_at + 1.day # this will give you a day to one day ahead) 

r.created_at + 2.days + 15.hours + 30.minutes + 5.seconds 


或使用Time.now

另外,如果你想看看在by_star插件/寶石公司提出了一些查詢等非常容易。