本月的名称(Date.today.month作为名称)

Rod*_*son 111 ruby

Date.today.month用来显示月号.是否有获取月份名称的命令,或者我是否需要提出案例来获取它?

Dyl*_*kow 188

Date::MONTHNAMES[Date.today.month]会给你"一月".(你可能需要require 'date'先).

  • `Date.today.strftime("%B")`是一种更好的方法,imho.而且它并不特定于rails.通过leafo查看下面的答案. (27认同)
  • @PedroMorteRolo仍然适用于Ruby 2.2.0 - 确保首先要求'要求'日期'. (2认同)

gri*_*lix 119

你也可以使用I18n:

I18n.t("date.month_names") # [nil, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
I18n.t("date.abbr_month_names") # [nil, "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
I18n.t("date.month_names")[Date.today.month] # "December"
I18n.t("date.abbr_month_names")[Date.today.month] # "Dec"
Run Code Online (Sandbox Code Playgroud)

  • 我认为,这个答案比其他答案更好,因为 I18n 返回当前语言环境中的月份名称。 (2认同)

lea*_*afo 78

你可以使用strftime:

Date.today.strftime("%B") # -> November
Run Code Online (Sandbox Code Playgroud)

http://www.ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/Date.html#strftime-method

  • 不对.两者都与[Ruby 2.0](http://www.ruby-doc.org/stdlib-2.0.0/libdoc/date/rdoc/Date.html#strftime-method)和[Ruby 2.1](http: //www.ruby-doc.org/stdlib-2.1.0/libdoc/date/rdoc/Date.html#strftime-method).注意,它们在你需要"date"之前是不可用的,因为它们在std-lib中,而不是核心. (6认同)
  • 只是警告使用Ruby 2的任何人,必须使用`Time.new.strftime("B")`今天和strftime从日期被剥夺 (2认同)

Yur*_*dev 16

如果你关心语言环境,你应该这样做:

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


jpg*_*eek 13

对于Ruby 1.9,我不得不使用:

Time.now.strftime("%B")
Run Code Online (Sandbox Code Playgroud)