2013-07-03 22 views
12

में दिनांक मैं नॉकआउट के टेम्पलेट में एक दिनांक स्वरूप के लिए इच्छुक हूँ। तारीख वर्तमान के रूप मेंप्रारूपण नॉकआउट खाका

2013-07-04T00:00:00 

लौटे किया जा रहा है मैं इसे पसंद

07/04/2013 

यहाँ प्रदर्शित किया चाहते हैं बाध्यकारी है मैं

<td data-bind="text: FirstDate"> 

उपयोग कर रहा हूँ उनके डिफ़ॉल्ट प्रारूपण प्रॉपर्टी हैं नॉकआउट के टेम्पलेट में?

+1

तारीख प्रारूपण के बारे या सामान्य रूप में स्वरूपण नॉकआउट में बनाया कुछ भी नहीं है । इसके लिए आपको [moment.js] (http://momentjs.com/) जैसे एक थर्ड पार्टी लाइब्रेरी का उपयोग करने की आवश्यकता है। – nemesv

+0

धन्यवाद @nemesv मैं moment.js शामिल था। । वही है जो मैं चाहता था। – rross

उत्तर

26

तारीख प्रारूपण के बारे या नॉकआउट में सामान्य रूप में स्वरूपण में बनाया कुछ भी नहीं है। इसलिए यदि आप कस्टम आप इसे अपने आप को क्या करने की जरूरत स्वरूपण चाहते text बंधन सिर्फ स्ट्रिंग के लिए संपत्ति के मूल्य बदल देता है।

दिनांकों के साथ कार्य करना जावास्क्रिप्ट में इतना आसान तो आप शायद इस लिए moment.js की तरह एक तीसरी पार्टी पुस्तकालय का उपयोग कर के साथ बेहतर कर रहे हैं नहीं है। इसका उपयोग करना बहुत आसान है और यह format method के साथ आपकी तिथियों को प्रारूपित कर सकता है। आपके आवश्यक माह संख्या, महीने का दिन, वर्ष स्वरूपण के लिए 'L' प्रारूप में बनाया गया है।

आप अपने तरह बंधन में सीधे अपनी व्यू-मॉडल में पल js उपयोग कर सकते हैं या:

<td data-bind="text: moment(FirstDate).format('L')"> 

या आप एक कस्टम बाध्यकारी हैंडलर जो इस स्वरूपण तर्क समाहित बना सकते हैं।

नोट: अपने FirstDate संपत्ति पर () का उपयोग करना सुनिश्चित करें यदि यह आपके डेटा-बाइंडिंग अभिव्यक्ति के अंदर ko.observable है।

+0

ग्रेट उत्तर :)। –

+0

क्या होगा यदि हम घंटे और मिनट भी दिखाना चाहते हैं? –

+0

उपलब्ध प्रारूप विकल्प @lola moment.js दस्तावेज़ में उपलब्ध है: http://momentjs.com/docs/#/displaying/format/ – nemesv

2

मैं Stephen Redd's date extender का एक संशोधित संस्करण में moment.js का उपयोग करें। ऐसा लगता है, जो डेटा बाइंड में फ़ंक्शन को कॉल करने से थोड़ा क्लीनर है।

<input type="text" data-bind="value: dateOfBirth.formattedDate" /> 
0

तुम भी एक एक्सटेंडर बनाने के लिए MomentJs उपयोग कर सकते हैं:

ko.extenders.date = function (target, format) { 
    return ko.computed({ 
     read: function() { 
      var value = target(); 
      if (typeof value === "string") { 
       value = new Date(value); 
      } 

      return moment(value).format("LL"); 
     }, 
     write: target 
    }); 
} 

viewmodel:

self.YourDate = ko.observable().extend({ date: true }); 

http://momentjs.com/docs/#/displaying/format/