Name of this month (Date.today.month as name)

前端 未结 6 909
南笙
南笙 2020-12-12 16:46

I\'m using Date.today.month to display the month number. Is there a command to get the month name, or do I need to make a case to get it?

相关标签:
6条回答
  • 2020-12-12 17:15

    For Ruby 1.9 I had to use:

    Time.now.strftime("%B")
    
    0 讨论(0)
  • 2020-12-12 17:20

    HTML Select month with 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>
    
    0 讨论(0)
  • 2020-12-12 17:23

    You can use strftime:

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

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

    0 讨论(0)
  • 2020-12-12 17:26

    You can also use 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"
    
    0 讨论(0)
  • 2020-12-12 17:28

    Date::MONTHNAMES[Date.today.month] would give you "January". (You may need to require 'date' first).

    0 讨论(0)
  • 2020-12-12 17:31

    If you care about the locale, you should do this:

    I18n.l(Time.current, format: "%B")
    
    0 讨论(0)
提交回复
热议问题