0

在我看来,我这样做:

  <td><%= client.last_contact.to_date %></td>

输出如下:

2011-08-11

但是当我在控制台中执行此操作时,我得到了我想要的格式:

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 

在我看来,我希望它在控制台中显示日期和格式。

我该如何做到这一点?

谢谢。

4

2 回答 2

6

在 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"

然后l在您的视图中使用助手

<%= l client.last_contact, :format => :date %>
于 2012-09-08T20:13:17.410 回答
5

控制台调用inspect值,而 erb 标签调用to_s它们的值。

虽然您可以调用inspect您的视图,但我鼓励您使用strftime允许您精确定义您想要的内容

Date::today.strftime('%a, %d %b %Y')` 

或使用允许您定义格式并重用它们的I18n.localize助手(别名为)l

I18n.localize Date::today, :format => :long
于 2012-09-08T20:08:22.453 回答