Ruby合并时间和日期到日期时间



我想从时间(在模型中是常量)和日期(存储在数据库中的属性)组成一个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分解时间,您可以根据需要存储时间,甚至可以存储在数组中。

相关内容

  • 没有找到相关文章

最新更新