2010-06-14 90 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插件/宝石公司提出了一些查询等非常容易。