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

我使用 Date.today.month来显示月份号。是否有一个命令来获取月份名称,或者我需要制定一个案例来获取它?

66166 次浏览

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

你也可以使用 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"

你可以使用 strftime:

Date.today.strftime("%B") # -> November

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

对于 Ruby 1.9,我必须使用:

Time.now.strftime("%B")

如果你关心地点,你应该这样做:

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

HTML 使用 I18n 选择月份:

<select>
<option value="">Choose month</option>
<%= 1.upto(12).each do |month| %>
<option value="<%= month %>"><%= I18n.t("date.month_names")[month] %></option>
<% end %>
</select>