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

Mic*_*ant 16 ruby time ruby-on-rails date

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

(Time.now + 1.month).month
# => 10
(Time.now + 1.month).year
# => 2015
Run Code Online (Sandbox Code Playgroud)

我怎样才能"October"10

j-d*_*exx 45

您可以使用Date的月份名称常量

Date::MONTHNAMES[10] => "October"
Run Code Online (Sandbox Code Playgroud)


Sha*_*riq 24

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

Date::MONTHNAMES[10]
# November
Run Code Online (Sandbox Code Playgroud)

获取缩写的月份名称

Date::ABBR_MONTHNAMES[10]
# Nov
Run Code Online (Sandbox Code Playgroud)

或者您也可以使用strftime%B formater来获取日期名称

Date.today.strftime(%B)
# September
Run Code Online (Sandbox Code Playgroud)

同样

(Time.now + 1.month).strftime('%B')
# November
Run Code Online (Sandbox Code Playgroud)

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

I18n.l(Time.now, format: "%B")
Run Code Online (Sandbox Code Playgroud)


Aru*_*hit 15

使用格式字符串.

(Time.now + 1.month).strftime("%B")
# => "October"
Run Code Online (Sandbox Code Playgroud)

  • 它工作,但忽略了语言环境 (3认同)
  • 并没有真正回答所提出的实际问题。提问者的输入是一个数字,而不是一个日期。 (3认同)

Yur*_*dev 15

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

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

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