我刚接触AJAX和JSON,JSON响应等很多东西是交错的我不知道这些是如何工作的。
我只是想在JSON响应中更改DATE的格式,我得到这样的响应:
/Date(-62135596800000)/
我只想将其更改为人类可读的DATE格式。 这是我通过DataTable从数据库获取值的方式,使用数据库中的列并将值放入c#中的视图。
$('#myDbTable')
.DataTable({
ajax: {
url: "@Url.Action("GetVouchers", "Vouchers")",
type: "GET",
dataType: "json",
dataSrc: 'DataSet',
},
"columns": [
{ "data": "FinancialYearName" },
{ "data": "CompanyName" },
{ "data": "BusinessUnitName" },
{ "data": "VoucherTypeName" },
{ "data": "Prefix" },
{ "data": "Code" },
{ "data": "VoucherDate" },
{ "data": "Status" }
],
"aoColumnDefs": [
{
"aTargets": [DataColumnsCount],
"mData": null,
"bSortable": false,
"mRender": function(data, type, fullRow) {
// console.log(fullRow);
return '<a class="btn btn-info btn-sm" href=#/' + fullRow["Id"] + '>' + 'Edit' + '</a>';
}
}
]
});
&#13;
{&#34; data&#34;:&#34; VoucherDate&#34;是使用数据库列将Date显示在dataTable中的列。
This is the image of OUTPUT for Date
我希望像2017年1月24日那样展示它。
答案 0 :(得分:0)
您可以为列定义自定义render
功能,您可以将来自服务器的数据格式化为所需的输出:
{
data: 'VoucherDate',
render: function (data, type, row) {
var date = new Date(parseInt(data.replace("/Date(", "").replace(")/",""), 10));
return date;
}
}
当然,更好的解决方案是修改服务器端序列化程序,以便不使用分割此格式,而是使用一些更标准的日期格式,例如ISO 8601。
您似乎正在使用ASP.NET MVC,因此我建议您switching to the
Json.NETserializer
而不是依赖JavaScriptSerializer
类。
答案 1 :(得分:0)