我想从一个时间(在模型中是常量)和日期(属性存储在数据库中)组成一个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
P.S。我不知道如何为这种情况存储时间常数...
答案 0 :(得分:3)
您可以使用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
对其进行分解,您可以根据需要存储时间,即使在数组中也是如此。