Rai*_*ner 7 ruby ruby-on-rails ruby-on-rails-3
在我的控制器中我有:
@konkurrencer = Rating.new(params[:kon])
@konkurrencer.save
@konkurrencer.konkurrencer.rating_score += params[:kon][:ratings].to_i
@konkurrencer.konkurrencer.ratings += 1
@konkurrencer.created_at = Time.now.strftime("%Y-%m-%d 00:00:00")
@konkurrencer.save
Run Code Online (Sandbox Code Playgroud)
当我创建一个新项时,created_at列是:
2012-02-27 16:35:18
Run Code Online (Sandbox Code Playgroud)
我希望它是:
2012-02-27 00:00:00
Run Code Online (Sandbox Code Playgroud)
The*_*hop 18
你的问题是strftime只格式化时间,它实际上并没有改变时间.
所以当你做Time.now时,会返回时间.Strftime只改变它所代表的方式.
如果要将created_at日期更改为"2012-02-27 00:00:00",只需将其传递给 @koncurrencer.created_at
@koncurrencer.created_at = "2012-02-27 00:00:00"
Run Code Online (Sandbox Code Playgroud)
应该这样做.
回答你的问题:
你在做什么应该工作得很好.事实上你可以说:
@koncurrencer.created_at = Time.now
@koncurrencer.save
Run Code Online (Sandbox Code Playgroud)
这应该工作得很好.
如果你想总是把时间放在当天的开头,你可以使用Date.today
而不是Time.now
因为那总是将Date的时间组件返回为"00:00:00"
这是你想要的:
@koncurrencer.created_at = Date.today
@koncurrencer.save
Run Code Online (Sandbox Code Playgroud)
那应该更清楚了.
归档时间: |
|
查看次数: |
18554 次 |
最近记录: |