淘汰赛 - 如何仅约束日期

时间:2013-05-08 00:12:35

标签: date datetime knockout.js

我有一个数组,一个键是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'

提前致谢!

3 个答案:

答案 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>