如何在c#中的JSON响应中将日期更改为右格式

时间:2017-01-24 08:39:16

标签: c# json ajax date

我刚接触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;
&#13;
&#13;

{&#34; data&#34;:&#34; VoucherDate&#34;是使用数据库列将Date显示在dataTable中的列。

This is the image of OUTPUT for Date

我希望像2017年1月24日那样展示它。

2 个答案:

答案 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 theJson.NETserializer而不是依赖JavaScriptSerializer类。

答案 1 :(得分:0)

我也在与MVC合作。您可以在c#方法中格式化日期时间。

检查出来:C# DateTime to "YYYYMMDDHHMMSS" format

顺便说一下,照顾时区偏移:))