2011-03-14 12 views
9

रूबी में डिफ़ॉल्ट तिथि yyyy-mm-dd है, लेकिन मैं उन्हें देखने में डीडी जा करने के लिए/महीना/वर्षबदलें दिनांक स्वरूप डी डी भेजिए/महीना/वर्ष

मैंने लिखा है की जरूरत एक config/initializers के रूप में DATE_FORMAT फ़ाइल:

Time::DATE_FORMATS.merge!(:uk_format => '%m/%d/%Y') 

इस के बाद से मैं इस प्रारूप का उपयोग करने के date.to_s(:uk_format) कॉल करने की आवश्यकता काम नहीं किया। लेकिन चूंकि मैं दिनांक प्रदर्शित करने के लिए <%= f.text_field :paymentDate %> का उपयोग कर रहा हूं, मुझे यकीन नहीं है कि मैं इस मामले में to_s जोड़ सकता हूं।

क्या कोई मेरी मदद कर सकता है।


संपादित करें 1

असल date.to_s (: uk_format) या तो काम नहीं करता है, मैं कैसे प्रारंभकर्ता ठीक से प्रयोग करते हैं .....?

उत्तर

27

देखें: Change default Ruby Time format

अनुकूलित मेरा उत्तर दिनांक और प्रारूप निर्दिष्ट के लिए ऊपर लिंक किया गया:


आप रेल का उपयोग कर रहे के बाद से, i18n समर्थन का लाभ लें: http://guides.rubyonrails.org/i18n.html#adding-date-time-formats

# config/locales/en.yml 
en: 
    date: 
    formats: 
     default: "%d/%m/%Y" 

फिर आप स्वरूपित दिनांक प्राप्त करने के लिए I18n.l Date.today पर कॉल कर सकते हैं। या आपके विचार में, आप <%= l @foo.created_at %> का उपयोग कर सकते हैं।

+3

क्या डेटाबेस से तारीख बुला के बारे में, इस रूप में अच्छी तरह से प्रभावित हो जाता है करता है? – Souloikj

+0

एक आउटपुट सहायक के रूप में, I18n स्रोत के बावजूद आप जो भी डेटा देते हैं, उस पर काम करेगा, इसलिए हाँ, यह डेटाबेस से तिथियों को प्रदर्शित करने के लिए ठीक काम करता है। भंडारण के लिए डिस्प्ले प्रारूप में तारीखों को बदलने के लिए यह वास्तव में एक बुरा विचार है, हालांकि, यदि आपका यही मतलब है। – coreyward

+0

फॉर्म फ़ील्ड में उस डिफ़ॉल्ट दिनांक प्रारूप को प्रतिबिंबित करने के बारे में क्या है (उदाहरण के लिए मॉडल पर दिनांक विशेषता संपादित करते समय)? – findchris

2

ऐसा करें:

Time::DATE_FORMATS.merge!({:db => '%m/%d/%Y', :uk_format => '%m/%d/%Y'}) 
Date::DATE_FORMATS.merge!({:db => '%m/%d/%Y', :uk_format => '%m/%d/%Y'})