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