5

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

提前致谢 !

4

3 回答 3

18

对我来说,关键是moment.js

你可以做这样简单的事情:

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

或者你可以像这个人那样写一个绑定助手,所以它会是这样的:

<span data-bind="dateString: createDate, datePattern: 'MM/DD/YYYY'"></span>
于 2013-05-08T00:30:23.613 回答
0

thanx 它对我有用,只显示时间:

 <td data-bind="text:moment(OpeningTime()).format('h:mm:ss a')"></td>
于 2016-02-23T10:40:02.580 回答
-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>
于 2013-05-08T01:34:39.387 回答