如何从月份编号获取月份名称

时间:2015-09-03 12:43:53

标签: ruby-on-rails ruby date time

我可以通过以下方式获得下个月的月份编号和年份:

(Time.now + 1.month).month
# => 10
(Time.now + 1.month).year
# => 2015

如何从"October"获取10

4 个答案:

答案 0 :(得分:40)

您可以使用Date的月份名称

Date::MONTHNAMES[10] => "October"

答案 1 :(得分:19)

Ruby Date类提供一个常量的月份名称数组。您可以将月号作为索引传递,并获得月份名称

Date::MONTHNAMES[10]
# November

获取缩写的月份名称

Date::ABBR_MONTHNAMES[10]
# Nov

或者您也可以使用strftime%B formater(例如

)从日期获取月份名称
Date.today.strftime(%B)
# September

类似地

(Time.now + 1.month).strftime('%B')
# November

如果您的应用程序是多语言或使用英语以外的语言,您可以使用I18n获取本地化的月份名称

I18n.l(Time.now, format: "%B")

答案 2 :(得分:15)

我认为应该在I18n模块的帮助下完成,因为strftime忽略了语言环境:

(Time.now + 1.month).strftime("%B") # => 'October'

I18n.l(Time.now + 1.month, format: "%B") # => 'Oktober'

答案 3 :(得分:13)

使用格式字符串。

(Time.now + 1.month).strftime("%B")
# => "October"