2013-10-20 92 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配合使用。

相關問題