Ich verwende Date.today.month
, um die Monatsnummer anzuzeigen. Gibt es einen Befehl, um den Monatsnamen zu erhalten, oder muss ich einen Fall machen, um ihn zu erhalten?
Ich verwende Date.today.month
, um die Monatsnummer anzuzeigen. Gibt es einen Befehl, um den Monatsnamen zu erhalten, oder muss ich einen Fall machen, um ihn zu erhalten?
Antworten:
Date::MONTHNAMES[Date.today.month]
würde dir "Januar" geben. (Möglicherweise müssen Sie require 'date'
zuerst).
Date.today.strftime("%B")
ist ein besserer Weg, dies zu tun, imho. Und es ist nicht spezifisch für Schienen. Siehe Antwort unten von leafo.
require 'date'
zuerst.
Sie können auch I18n verwenden:
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"
Sie können verwenden 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")
Today & Strftime von Date
require "date"
, da sie sich in der std-lib und nicht im Kern befinden.
Wenn Sie sich für das Gebietsschema interessieren, sollten Sie Folgendes tun:
I18n.l(Time.current, format: "%B")
I18n.l(Date.new, format: '%B')
um mit Januar zu beginnen. Wenn Sie Monate hinzufügen möchten, z. B. Februar, verwenden SieDate.new + 1.month