2013-05-08 6 views
5

पर बाइंड करने के लिए कैसे करें मेरे पास एक सरणी है, एक कुंजी बनाई गई है। सरणी के फोरच लूपिंग में, मैं एक नॉकआउट टेक्स्ट बाध्यकारी के माध्यम से createDate मान खींचता हूं।नॉकआउट - केवल

<span data-bind="text: createDate"></span> 

मूल्य प्रदर्शित करता है: '2013-04-24T16: 29: 00.38' ... डेटाबेस में यह वही तरीका है। क्या केवल तारीख को दिखाने के लिए प्रारूप (बाध्यकारी के भीतर) प्रारूपित करने का कोई तरीका है? या क्या मुझे इसे प्राप्त करने के लिए डेटाबेस में केवल तारीख के रूप में सहेजना है?

धन्यवाद अग्रिम में '2013-04-24':

जैसे, आप निम्नलिखित 2 दशमलव के सेट करने के लिए उपयोग कर सकते हैं:

<span data-bind="text: price.ToFixed(2)"></span> 

वहाँ कुछ ही प्रदर्शित करने के लिए इस जैसे सरल है!

उत्तर

18

मेरे लिए कुंजी moment.js

आप इस के रूप में सरल कुछ कर सकते हैं है:

<span data-bind="text: moment(createDate()).format('MM/DD/YYYY')"></span> 

या आप एक बाध्यकारी सहायक like this guy does लिख सकता है, तो यह हो सकता है कुछ की तरह:

<span data-bind="dateString: createDate, datePattern: 'MM/DD/YYYY'"></span> 
+1

@ जेसन: moment.js का उपयोग कर एक नाबालिग सुधार के साथ अच्छा काम करता है: "पाठ : पल (createDate) .format ('MM/DD/YYYY') "... createDate एक फ़ंक्शन नहीं है इसलिए() को छोड़ दें। यह साफ और आसान है, इसलिए मैंने बाध्यकारी सहायक के साथ विकल्प भी नहीं देखा। बहुत बहुत धन्यवाद! – nanonerd

+0

कूल, खुशी हुई यह मदद की। मैं सोच रहा था कि createDate एक ko.observable() था, लेकिन अगर यह नहीं है तो हाँ,() 'की कोई ज़रूरत नहीं है। –

+0

@ जेसनहेली आपके दूसरे समाधान का लिंक मर चुका है :( –

-2

यह जावास्क्रिप्ट जोड़ें:

String.prototype.Format = function (fmt) { 
var myDate = this; 
var o = { 
    "M+": myDate.getMonth() + 1, 
    "d+": myDate.getDate(), 
    "h+": myDate.getHours(), 
    "m+": myDate.getMinutes(), 
    "s+": myDate.getSeconds(), 
    "q+": Math.floor((myDate.getMonth() + 3)/3), 
    "S": myDate.getMilliseconds() 
}; 
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (myDate.getFullYear() + "").substr(4 - RegExp.$1.length)); 
for (var k in o) 
    if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); 
return fmt; 

};

<span data-bind="text: createDate().Format('MM/DD/YYYY')"></span> 
+0

@ जैक: धन्यवाद लेकिन moment.js बहुत अच्छा काम करता है और आसान है (ऊपर उत्तर के माध्यम से)। – nanonerd

+0

यह दिनांक नहीं होना चाहिए .prototype.Format = ... –

0

मुझे केवल समय प्रदर्शित करने के लिए thanx यह काम किया:

तो फिर तुम इस तरह उपयोग कर सकते हैं

<td data-bind="text:moment(OpeningTime()).format('h:mm:ss a')"></td>