इस महीने का नाम (Date.today.month नाम के रूप में)


115

मैं Date.today.monthमहीने की संख्या प्रदर्शित करने के लिए उपयोग कर रहा हूं । क्या महीने का नाम प्राप्त करने के लिए एक आदेश है, या मुझे इसे प्राप्त करने के लिए एक मामला बनाने की आवश्यकता है?


डायलन का जवाब अभी भी रूबी 2.5.0 के रूप में काम करता है
oneWorkingHeadphone

जवाबों:


196

Date::MONTHNAMES[Date.today.month]आपको "जनवरी" देगा। (आपको require 'date'पहले करने की आवश्यकता हो सकती है )।


28
Date.today.strftime("%B")यह करने का एक बेहतर तरीका है, इम्हो। और यह रेल के लिए विशिष्ट नहीं है। नीचे उत्तर देखें leafo द्वारा।
पीटर बर्ग

2
@PedroMorteRolo अभी भी रूबी 2.2.0 पर मेरे लिए काम करता है - require 'date'पहले सुनिश्चित करें ।
डायलन मार्कॉ

121

आप 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"

जैसा कि मुझे लगता है, यह उत्तर दूसरों की तुलना में बेहतर है क्योंकि I18n वर्तमान लोकल में महीनों के नाम देता है।
स्टीफन ज़खरोव

80

आप उपयोग कर सकते हैं strftime:

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

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


2
रूबी 2 का उपयोग करने वाले किसी के लिए बस एक चेतावनी, Time.new.strftime("B")आज का उपयोग करना होगा और तारीख से छीन लिया जाएगा
सनरोटे

7
सच नहीं। दोनों रूबी 2.0 और रूबी 2.1 के साथ हैं । ध्यान दें, कि वे आपके लिए उपलब्ध नहीं हैं require "date", क्योंकि वे std-lib में हैं, कोर नहीं।
pbyrne

16

यदि आपको लोकेल की परवाह है, तो आपको यह करना चाहिए:

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

या I18n.l(Date.new, format: '%B')जनवरी से शुरू करने के लिए। यदि आप महीनों को जोड़ना चाहते हैं, जैसे फरवरी होने पर, उपयोग करेंDate.new + 1.month
रुई न्यून्स

13

रूबी 1.9 के लिए मुझे उपयोग करना था:

Time.now.strftime("%B")

0

HTML 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>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.