Używam Date.today.monthdo wyświetlenia numeru miesiąca. Czy istnieje polecenie pobrania nazwy miesiąca, czy też muszę przedstawić sprawę, aby ją uzyskać?
Używam Date.today.monthdo wyświetlenia numeru miesiąca. Czy istnieje polecenie pobrania nazwy miesiąca, czy też muszę przedstawić sprawę, aby ją uzyskać?
Odpowiedzi:
Date::MONTHNAMES[Date.today.month]dałoby ci „styczeń”. (Być może będziesz musiał require 'date'najpierw).
Date.today.strftime("%B")to lepszy sposób na zrobienie tego, imho. I to nie jest specyficzne dla szyn. Zobacz odpowiedź poniżej przez leafo.
require 'date'najpierw.
Możesz także użyć 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"
Możesz użyć strftime:
Date.today.strftime("%B") # -> November
http://www.ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/Date.html#strftime-method
Time.new.strftime("B")Dzisiaj i strftime są usunięte z Date
Jeśli zależy Ci na lokalizacji, zrób to:
I18n.l(Time.current, format: "%B")
I18n.l(Date.new, format: '%B')zacząć od stycznia. Jeśli chcesz dodać miesiące, takie jak luty, użyjDate.new + 1.month