问题描述
我要在广告中添加过期功能。 Expire应该包含数据和时间,像这样: 12.06.12 14:24
I am adding expire function to advertisement. Expire should contain data and time Like this: 12.06.12 14:24
在这一点上,我这样做是这样的:
我在数据库中还有一个用于广告的附加列,称为过期
At this point I done like this:I have additional column in database for advertisements called expiration
before_create :set_expiration_date
def set_expiration_date
self.expiration = Date.today + 56.days
end
这很好。现在,我想看到这个过期日期。
This works great. Now in view I want to see this expiration date.
Advertisement#show
<%= @advertisement.expiration.to_formatted_s(:db) %>
但是它给了我这个 2015-02-06
当我将 set_expiration_date 更改为:
def set_expiration_date
self.expiration = Time.now + 56.days
end
那就像没有时间的 2015-02-06
。
所以我想知道是否唯一的解决方法是在广告表中有两列 expiration_date 和 expiration_time 。
So I wonder if only soulution would be having two columns expiration_date and expiration_time to my advertisement table.
模型:
before_create :set_expiration_date
before_create :set_expiration_time
def set_expiration_date
self.expiration_date = Date.today + 56.days
end
def set_expiration_time
self.expiration_time = Time.now
end
我认为此解决方案非常难看。
I think this solution is very ugly.
任何其他模拟码头解决我的问题?如何在单列中存储日期和时间?
Is there any other simpier solution to my problem ? How can I store in single column date and time?
谢谢!
推荐答案
更改日期到 datetime
的过期,为什么不使用 strftime
来格式化输出格式
Change expiration
from date
to datetime
, and why do you don't use strftime
to beter format your output
示例:
<%= @advertisement.expiration.strftime("%b %d %Y, %H:%M") %>
另请参见
这篇关于使用before_create Rails 4设置到期日期和时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!