Bu ayın adı (ad olarak Date.today.month)


115

Date.today.monthAy numarasını görüntülemek için kullanıyorum . Ay adını almak için bir komut var mı yoksa onu almak için bir vaka oluşturmam gerekiyor mu?


Dylan'ın cevabı Ruby 2.5.0 itibariyle hala çalışıyor
oneWorkingHeadphone

Yanıtlar:


196

Date::MONTHNAMES[Date.today.month]size "Ocak" verir. (Önce ihtiyacınız olabilir require 'date').


28
Date.today.strftime("%B")bunu yapmanın daha iyi bir yolu, imho. Ve raylara özgü değil. Leafo tarafından aşağıdaki cevaba bakın.
Peter Berg

2
@PedroMorteRolo hala Ruby 2.2.0'da benim için çalışıyor - önce emin olun require 'date'.
Dylan Markow

121

I18n'yi de kullanabilirsiniz:

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"

Bence bu cevap diğerlerinden daha iyi çünkü I18n mevcut yerel ayarda ay adlarını döndürüyor.
Stepan Zakharov


16

Yerel ayarı önemsiyorsanız, şunu yapmalısınız:

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

veya I18n.l(Date.new, format: '%B')Ocak ayından başlamak üzere. Şubat ayı gibi aylar eklemek istiyorsanız şunu kullanınDate.new + 1.month
Rui Nunes

13

Ruby 1.9 için şunu kullanmam gerekiyordu:

Time.now.strftime("%B")

0

HTML I18n ile ayı seçin:

<select>
  <option value="">Choose month</option>
  <%= 1.upto(12).each do |month| %>
    <option value="<%= month %>"><%= I18n.t("date.month_names")[month] %></option>
  <% end %>
</select>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.