我想从时间(在模型中是常量)和日期(存储在数据库中的属性)组成一个datetime
对象。我该怎么做?
类似的东西:
class Product < AR::Base
MANUFACTURE_TIME = '08:00' # Is there another way to better write just time?
def manufactured_at # method, which returns
# => 1 Jan 2012, 08:00, if self.manufacture_date == Date.new(2012, 1, 1)
# => 5 oct 2012, 08:00, if self.manufacture_date == Date.new(2012, 10, 5)
# => 23 Sep 2014, 08:00, if self.manufacture_date == Date.new(2014, 9, 23)
end
end
附言:我不知道如何存储这种情况下的时间常数。。。
您可以使用DateTime.new
并传递单个日期组件(如年和月)来构造新的DateTime。
class Product < AR::Base
MANUFACTURE_TIME = '08:00'
def manufactured_at
hour, minute = MANUFACTURE_TIME.split(':')
DateTime.new(manufacture_date.year, manufacture_date.month, manufacture_date.day, hour, minute)
end
end
如果以后不想使用split
分解时间,您可以根据需要存储时间,甚至可以存储在数组中。