Название этого месяца (Date.today.month как имя) - PullRequest
109 голосов
/ 30 января 2011

Я использую Date.today.month для отображения номера месяца. Есть ли команда для получения названия месяца, или мне нужно составить регистр, чтобы получить его?

Ответы [ 6 ]

187 голосов
/ 30 января 2011

Date::MONTHNAMES[Date.today.month] даст вам "январь".(Возможно, вам сначала потребуется require 'date').

116 голосов
/ 09 декабря 2011

Вы также можете использовать 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"
77 голосов
/ 25 ноября 2012

Вы можете использовать strftime:

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

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

16 голосов
/ 03 сентября 2015

Если вы заботитесь о локали, вы должны сделать это:

I18n.l(Time.current, format: "%B")
12 голосов
/ 08 мая 2014

Для Ruby 1.9 мне пришлось использовать:

Time.now.strftime("%B")
0 голосов
/ 06 декабря 2018

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...