Я использую Date.today.month
для отображения номера месяца. Есть ли команда, чтобы получить имя месяца, или мне нужно сделать случай, чтобы получить его?
Название этого месяца (Date.today.month как имя)
Ответ 1
Date::MONTHNAMES[Date.today.month]
даст вам "Январь". (Сначала вам может понадобиться require 'date'
).
Ответ 2
Вы также можете использовать 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"
Ответ 3
Вы можете использовать strftime
:
Date.today.strftime("%B") # -> November
http://www.ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/Date.html#strftime-method
Ответ 4
Если вы заботитесь о локали, вы должны сделать следующее:
I18n.l(Time.current, format: "%B")
Ответ 5
Для Ruby 1.9 мне пришлось использовать:
Time.now.strftime("%B")
Ответ 6
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>