5

我正在切换到rails,它有时会变得有点奇怪。安装 es.yml 文件后,我试图输出数据库的 DATETIME 列。如果我这样做:

= l(a.created_at, :format => :short)

没关系。它以西班牙语格式打印一个不错的日期。但我对以这种方式使用abbr_month_names感到困惑。我已经尝试了很多不同的方式——相信我,我在这个问题上花了大约四个小时——但我找不到简单地输出月份名称的方法——让我们说“OCT.

我查看了很多关于 i18n 和日期格式的网站,但文章总是以 :format => :short 示例结尾,并且不关心显示日期的其他方式(好吧,有人还解释了如何使用 :long 格式...)

4

3 回答 3

11

德语语言环境的片段de.yml

de:
  date:
    abbr_month_names:
    - 
    - Jan
    - Feb
    - Mär

您可以通过 Rails 的翻译功能直接访问语言环境:

I18n.t :abbr_month_names, :scope => :date // returns ['', 'Jan', 'Feb', 'Mär']

因为abbr_month_names由多个条目(以连字符开头)组成,它将返回一个数组。例如,您可以通过以下方式获取当前的缩写月份:

(I18n.t :abbr_month_names, :scope => :date)[Time.now.month]
于 2013-06-22T13:05:07.710 回答
5

您可以使用a.created_at.strftime('%b')此链接显示所有可能的日期时间部分:

http://www.ruby-doc.org/core-1.9.3/Time.html#method-i-strftime

于 2012-10-08T18:33:54.703 回答
0

在您的 YAML 文件中输入:

es:
  time:
    formats:
      abbr_month: "%b"

然后在您看来,您应该可以使用它:

= l(a.created_at, :format => :abbr_month)

取自这里: http: //guides.rubyonrails.org/i18n.html#adding-date-time-formats

于 2012-10-09T00:44:57.807 回答