mar*_*ion 0 datetime ruby-on-rails ruby-on-rails-3
在我看来,我这样做:
<td><%= client.last_contact.to_date %></td>
Run Code Online (Sandbox Code Playgroud)
这输出:
2011-08-11
Run Code Online (Sandbox Code Playgroud)
但是当我在控制台中执行此操作时,我得到了我想要的格式:
1.9.3p194 :093 > c.last_contact
=> Thu, 11 Aug 2011 00:00:00 UTC +00:00
1.9.3p194 :094 > c.last_contact.to_date
=> Thu, 11 Aug 2011
Run Code Online (Sandbox Code Playgroud)
在我看来,我希望它显示它在控制台中的日期和格式.
我如何实现这一目标?
谢谢.
在rails视图中显示时间/日期的最佳方法是使用I18n本地化功能.您可以config/locales在yaml文件中的目录中设置日期时间格式.像这样的东西
# config/locales/datetime.en.yml
en:
time:
formats:
# Use the strftime parameters for formats.
# When no format has been given, it uses default.
# You can provide other formats here if you like!
default: "%d.%m.%Y"
short: "%d %b"
long: "%d %B %Y"
date: "%a, %d %b %Y"
Run Code Online (Sandbox Code Playgroud)
然后l在视图中使用帮助器
<%= l client.last_contact, :format => :date %>
Run Code Online (Sandbox Code Playgroud)
控制台调用inspect值,而erb标签调用to_s它们的值.
虽然您可以inspect在您的视图中调用,但我鼓励您使用strftime哪个允许您准确定义您想要的内容
Date::today.strftime('%a, %d %b %Y')`
Run Code Online (Sandbox Code Playgroud)
或使用I18n.localize帮助程序(别名l),它允许您定义格式并重用它们
I18n.localize Date::today, :format => :long
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1061 次 |
| 最近记录: |