2013-10-20 58 views
0

我正在创建一个Rails 3.2应用程序,我不知道如何处理日期和时间。 现在我在数据库中有一个名为start_date的字段,它是一个日期时间戳记,我也有一个名为start_time的字段。如何结合日期和时间?

我正在使用fullcalendar插件,为此我必须将start_date和start_time结合起来。我怎样才能做到这一点? (并非数据库中的所有事件都有start_time)。

感谢您的所有意见!

回答

1

Ruby有DateTime class,它基本上将日期和时间合并到一个对象中。我建议做,创建一个新的领域被称为start,然后结合你现有的start_datestart_time领域迁移到一个:

def up 
    add_column :events, :start, :datetime 

    Event.find_each do |e| 
    d = e.start_date 
    t = e.start_time 
    e.start = DateTime.new(d.year, d.month, d.day, t.hour, t.min, t.sec) 
    end 

    remove_column :events, :start_date 
    remove_column :events, :start_time 
end 

def down 
    add_column :events, :start_date, :datetime 
    add_column :events, :start_time, :datetime 

    Event.find_each do |e| 
    s = e.start 
    e.start_date = s.to_date 
    e.start_time = s.to_time 
    end 

    remove_column :events, :start 
end 

如果你需要得到的日期或时间部分在未来,你可以使用to_dateto_time,并且DateTime的组合应该与fullcalendar配合使用。

相关问题