如何阅读JsonResult返回的日期

时间:2011-05-09 10:20:27

标签: jquery asp.net asp.net-mvc-3

我以JsonResult的形式返回DateTime。但是,我的价值如下:

  

“/日期(1303070400000)/”

如何在Javascript中以Date格式设置JSon值?

5 个答案:

答案 0 :(得分:2)

使用$ .parseJSON

进行自动日期转换

我编写了一个自定义jQuery extension,可以将.Net以及ISO日期自动转换为实际的Javascript日期。

它实际上扩展了现有的$.parseJSON()函数,现在可以使用其他参数:

$.parseJSON([String] json, [optional Boolean] convertDates);

因此,只要您希望自动转换日期,只需将最后一个参数设置为true即可。好处是它不会干扰您现有的代码,因为最后一个参数是可选的,当没有提供它时,它的工作原理与原始函数相同。它只会在您指示日期时转换日期。

完全透明的自动转换

我个人使用相同扩展名的略微修改版本,反之亦然。它总是转换日期,除非我不指示它,所以即使内部jQuery功能调用.parseJSON函数(即在使用JSON类型调用$.ajax时),我总是会得到日期) 。如果您需要它同样的工作,请随意让我知道或更改扩展代码。找到它的方法很容易。

这是最透明的jQuery日期转换

答案 1 :(得分:1)

我为此目的使用了folluwing功能

        function ConvertJsonDate(jsondate) {
        if (!jsondate)
            return "";

        var dt = new Date(+(jsondate).substr(6, 13));
        var m = dt.getMonth() + 1;
        var d = dt.getDate();
        if (m < 10)
            m = "0" + m;
        if (d < 10)
            d = "0" + d;
        return d + "-" + m + "-" + dt.getFullYear();
    }

答案 2 :(得分:1)

我只使用以下内容:

var dateString = "/Date(1303070400000)/";
var dt = new Date(parseInt(dateString.substr(6)));

答案 3 :(得分:1)

你可以试试这个

new Date(parseInt("/Date(1303070400000)/".replace("/Date(", "").replace(")/", ""), 10))

答案 4 :(得分:-1)

当JSON被反序列化时,json2.js库,http://json.org和jQuery JSON解析器应该自然地将它转换为Date值。