이번 달 이름 (Date.today.month 이름)


115

Date.today.month월 번호를 표시하는 데 사용 하고 있습니다. 월 이름을 가져 오는 명령이 있습니까, 아니면 가져 오기 위해 케이스를 만들어야합니까?


딜런의 대답은 여전히 루비 2.5.0의로 작동
oneWorkingHeadphone

답변:


196

Date::MONTHNAMES[Date.today.month]"1 월"을 제공합니다. ( require 'date'먼저 필요할 수 있습니다 ).


28
Date.today.strftime("%B")더 나은 방법입니다, imho. 그리고 그것은 레일에만 국한되지 않습니다. leafo의 아래 답변을 참조하십시오.
Peter Berg

2
@PedroMorteRolo는 여전히 Ruby 2.2.0에서 저를 위해 작동합니다-먼저 확인하십시오 require 'date'.
Dylan Markow

121

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"

내가 생각하기에 I18n은 현재 로케일에서 월 이름을 반환하기 때문에이 답변은 다른 답변보다 낫습니다.
Stepan Zakharov 2014 년


16

로케일에 관심이 있다면 다음을 수행해야합니다.

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

또는 I18n.l(Date.new, format: '%B')1 월부터 시작합니다. 당신은 월 사용 가진처럼 개월을 추가하려는 경우Date.new + 1.month
루이 Nunes 보낸

13

Ruby 1.9의 경우 다음을 사용해야했습니다.

Time.now.strftime("%B")

0

I18n이있는 HTML 선택 달 :

<select>
  <option value="">Choose month</option>
  <%= 1.upto(12).each do |month| %>
    <option value="<%= month %>"><%= I18n.t("date.month_names")[month] %></option>
  <% end %>
</select>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.