我有一个数组,一个键是createDate。在数组的foreach循环中,我通过敲除文本绑定来拉取createDate值。
<span data-bind="text: createDate"></span>
显示的值:'2013-04-24T16:29:00.38'...这是它在数据库中的存在方式。有没有办法格式化(在绑定内)只显示日期?或者我是否必须将其仅作为日期保存在数据库中才能实现此目的?
例如,您可以使用以下内容设置2位小数:
<span data-bind="text: price.ToFixed(2)"></span>
是否有一些简单的东西只能显示:'2013-04-24'
提前致谢!
答案 0 :(得分: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 :(得分:0)
thanx它对我来说只显示时间:
<td data-bind="text:moment(OpeningTime()).format('h:mm:ss a')"></td>
答案 2 :(得分:-2)
添加此javascript:
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>