Rails:以月/日/年格式to_date

时间:2013-09-20 20:24:31

标签: ruby-on-rails ruby

我这里有一个简单的问题。我有一个带有created_at的实例变量。如何将其转换为Month, day, year ~ September, 13, 1987

当我尝试= @ example.created_at时,在我看来,它给了我1987-09-13

奇怪的是,当我在控制台中执行此方法时,我得到Sun, 13 Sep 1987

  1. 如何将变量变为月,日,年?
  2. 为什么它会在控制台中返回不同的内容?

3 个答案:

答案 0 :(得分:8)

您可以通过指定

等格式来更改日期的显示方式
@example.created_at.strftime("%B, %d, %Y")
# => "September, 20, 2013" 

查看各种格式选项here

控制台和视图中的显示格式不同,因为默认格式不同。

答案 1 :(得分:1)

Yes..possible!

require 'date'

d = Date.parse('September, 13, 1987')
month, day, year=d.month,d.day,d.year
month # => 9
day # => 13
year # => 1987

答案 2 :(得分:1)

处理显示日期和时间的一个好方法是为您的应用程序设置国际化,更多信息请点击此处:

http://guides.rubyonrails.org/i18n.html

日期(en.yml)的一个例子:

en:
  date:
    formats:
      default: "%Y-%m-%d"
      short: "%b %d"
      long: "%B %d, %Y"

您可以在视图中显示各种日期格式,如下所示:

l Date.current, format: :short

这种方法的优点是您可以轻松更改应用程序中所有日期的显示方式,因为格式在一个地方定义,并且您的应用程序将来会为更多区域设置做好准备。