关于asp.net:Date值在使用jquery和Json时以错误的格式显示

Date value is displaying in wrong format when using jquery And Json

我从SQL Server返回创建日期值,并使用jquery将其放置在一个DIV中。但是我得到的值是"/date(1385716781000)/",但我需要它作为dd/m m/yy格式。

返回时,我在模型中得到的值为"2013-11-29 14:03:33.160",但在调试时,我发现它是上述格式的。

1
2
3
4
5
6
7
$.getJSON( '@Url.Action("GetTicketdetails")',  { TicketID: ticketid }, function (items) {
  debugger;
  for (var i = 0; i < items.length; i++) {
    var s = s + '<li >' + '' + items[i].CreatedDate + '';
  }
  $('#divA').html(s);
});

我做错什么了??


您必须像这样转换json格式的日期

使用此函数转换JSON日期

1
2
3
4
5
6
7
8
9
10
11
12
function renderDate(value) {
  if (value == '' || value == undefined) {
    return '';
  }
  else {
    getDate = new Date(parseInt(value.substr(6)));
  }
  //You can - or / as what ever you want
  return (
    getDate.getDate()  +"/" + (getDate.getMonth() + 1) +"/" + getDate.getFullYear()
  );
}

您的函数将按如下方式转换

1
2
3
4
5
6
7
8
9
10
$.getJSON('@Url.Action("GetTicketdetails")', { TicketID: ticketid }, function (items){
  debugger;
  for (var i = 0; i < items.length; i++) {
    var s = s + '
<li>
' + '' +
      renderDate(items[i].CreatedDate) + '';
  }
  $('#divA').html(s);
});


我想你得到的是UNIX timestamp,你可以使用date.format(),比如,

1
new Date(items[i].CreatedDate  * 1000).format('d/m/y');

用你的代码试试这个,

1
2
3
4
5
6
7
8
9
var  s ='';// initialize s here, once
for (var i = 0; i < items.length; i++) {
   d=new Date(items[i].CreatedDate  * 1000).format('d/m/y');
   s += '
<li>
' + d +  '
</li>
';  
}

更新或尝试简单,

1
2
3
4
5
6
7
8
9
10
var  s ='';// initialize s here, once
for (var i = 0; i < items.length; i++) {
   d=Date(items[i].CreatedDate); // let you get 1385716781000 in items[i].CreatedDate
   nd=(d.getMonth()+1)+'/'+d.getDay()+'/'+d.getFullYear();// new date
   s += '
<li>
' + nd +  '
</li>
';  
}

请参考此内容并将Unix时间戳转换为Javascript日期对象