मुझे बार्टोज़ का जवाब पसंद है, लेकिन हे, क्योंकि यह रेल है जिसके बारे में हम बात कर रहे हैं, चलो इसे कुटिलता में एक कदम बढ़ाएं। (संपादित करें: हालाँकि मैं निम्नलिखित विधि का उपयोग करने के लिए जा रहा था, फिर भी वहाँ एक क्लीनर रास्ता है।)
DateTime
इंस्टेंसेस में to_formatted_s
ActiveSupport द्वारा आपूर्ति की गई एक विधि है, जो एक एकल चिह्न को एक पैरामीटर के रूप में लेती है और, यदि उस प्रतीक को एक मान्य पूर्वनिर्धारित प्रारूप के रूप में मान्यता प्राप्त है, तो एक स्ट्रिंग को उचित स्वरूपण के साथ लौटाता है।
उन प्रतीकों को परिभाषित किया जाता है Time::DATE_FORMATS
, जो कि मानक स्वरूपण फ़ंक्शन ... या प्रोक्स के लिए या तो तार के प्रतीकों का एक हैश है। Bwahaha।
d = DateTime.now #Examples were executed on October 3rd 2008
Time::DATE_FORMATS[:weekday_month_ordinal] =
lambda { |time| time.strftime("%a %b #{time.day.ordinalize}") }
d.to_formatted_s :weekday_month_ordinal #Fri Oct 3rd
लेकिन हे, अगर आप बंदर पकड़ने के अवसर का विरोध नहीं कर सकते, तो आप हमेशा एक क्लीनर इंटरफ़ेस दे सकते हैं:
class DateTime
Time::DATE_FORMATS[:weekday_month_ordinal] =
lambda { |time| time.strftime("%a %b #{time.day.ordinalize}") }
def to_my_special_s
to_formatted_s :weekday_month_ordinal
end
end
DateTime.now.to_my_special_s #Fri Oct 3rd