我正在创建一个 Rails 3.2 应用程序,但我不确定如何处理日期和时间。现在我在数据库中有一个名为 start_date 的字段,它是一个日期时间时间戳,我还有一个名为 start_time 的字段。
我正在使用 fullcalendar 插件,为此我必须结合 start_date 和 start_time。我怎样才能做到这一点?(并非数据库中的所有事件都有 start_time)。
感谢所有输入!
我正在创建一个 Rails 3.2 应用程序,但我不确定如何处理日期和时间。现在我在数据库中有一个名为 start_date 的字段,它是一个日期时间时间戳,我还有一个名为 start_time 的字段。
我正在使用 fullcalendar 插件,为此我必须结合 start_date 和 start_time。我怎样才能做到这一点?(并非数据库中的所有事件都有 start_time)。
感谢所有输入!
Ruby 有一个DateTime
类,它本质上将日期和时间合并到一个对象中。我建议进行迁移以创建一个名为的新字段,start
然后将现有字段start_date
和start_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_date
or to_time
,并且组合DateTime
应该可以很好地与 fullcalendar 一起使用。