web-dev-qa-db-ja.com

月番号から月の名前を取得するにはどうすればよいですか

次の月の番号と年を次のように取得できます:

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

"October"から10を取得するにはどうすればよいですか?

16
Michael Durrant

書式文字列を使用します。

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

日付の月名定数を使用できます

Date::MONTHNAMES[10] => "October"
48
j-dexx

Ruby Dateクラスは、月名の定数配列を提供します。あなたはインデックスとして月番号を渡すことができ、月の名前を取得します

Date::MONTHNAMES[10]
# November

省略された月名を取得するには

Date::ABBR_MONTHNAMES[10]
# Nov

または、次のようなstrftime%Bフォーマッタを使用して、日付から月名を取得することもできます

Date.today.strftime(%B)
# September

同様に

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

アプリケーションが多言語または英語以外の言語を使用している場合、I18nを使用してローカライズされた月の名前を取得できます

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

strftimeはロケールを無視するので、I18nモジュールの助けを借りてそれを行う必要があると思います。

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

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