【问题标题】:How to change Date to RIGHT Format in JSON response in c#如何在 c# 中将 JSON 响应中的日期更改为 RIGHT 格式
【发布时间】:2017-01-24 08:39:15
【问题描述】:

我只是 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>';
                        }

                    }
                ]

            });

{ "data": "VoucherDate" } 是使用数据库列在 dataTable 中显示日期的列。

This is the image of OUTPUT for Date

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

【问题讨论】:

标签: c# json ajax date


【解决方案1】:

您可以为您的列定义一个自定义 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 类。

【讨论】:

  • 我已经编辑了我的问题,现在完整的代码块已输入到 sn-p 中,请查看并回复我。
  • 我已经在我的回答中展示了如何在定义 VoucherDate 列时使用 render 函数。我可以添加的内容不多。
  • 我不知道如何在我的代码中使用它,请帮我这样做:/我不知道在哪里放置渲染在 sn-p 中已经有 mRender
  • 你把它放在你的 columns 定义中。目前你的代码中有这个:{ "data": "VoucherDate" }。我所说的是用我在回答中显示的内容替换它。除了指定 data 字段之外,您还指定了一个 render 函数。
【解决方案2】:

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

看看这个:C# DateTime to "YYYYMMDDHHMMSS" format

顺便说一句,注意时区偏移:)

【讨论】:

    猜你喜欢
    • 2021-09-05
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 2016-03-08
    相关资源
    最近更新 更多