从jsonresult返回时,如何将json日期从/Date.../转换为实际的日期时间?

时间:2017-10-08 17:20:05

标签: javascript jquery json

我正在查询我的数据库并返回一个jsonresult,并使用它来填充网格,我看到我的日期返回是/ Date(1507477743793)/。我已经环顾四周并且在转换一个变量时已经看到了解决方案但是当涉及到一个对象数组时(我认为那是正确的)

修改

示例数据

FileAReportID:1
ReportAddress:"1 Main Street West"
ReportDate:"/Date(1507477743793)/"
ReporterName:"Beetle Bailey"

2 个答案:

答案 0 :(得分:0)

此号码1507477743793是服务器的时间戳。将其转换为其他格式只需尝试:

let t = (new Date(1507477743793)).toUTCString();
console.log(t)

// output
and you get: 2017/12/6 05:32:30pm

答案 1 :(得分:0)

您可以创建自定义jsonresult

public class CustomJsonResult : JsonResult
{
    private const string _dateFormat = "yyyy-MM-dd HH:mm:ss";

    public override void ExecuteResult(ControllerContext context)
    {
        if (context == null)
        {
            throw new ArgumentNullException("context");
        }

        HttpResponseBase response = context.HttpContext.Response;

        if (!String.IsNullOrEmpty(ContentType))
        {
            response.ContentType = ContentType;
        }
        else
        {
            response.ContentType = "application/json";
        }
        if (ContentEncoding != null)
        {
            response.ContentEncoding = ContentEncoding;
        }
        if (Data != null)
        {
            // Using Json.NET serializer
            var isoConvert = new IsoDateTimeConverter();
            isoConvert.DateTimeFormat = _dateFormat;
            response.Write(JsonConvert.SerializeObject(Data, isoConvert));
        }
    }
}

用法示例:

[HttpGet]
public ActionResult Index() {
    return new CustomJsonResult { Data = new {  }  };
}

您还可以创建自定义MediaTypeFormatter格式化程序,在序列化过程中,您可以更改日期时间的格式。

<强>更新

Json.Net支持多种格式化日期的方式,如果您从ajax调用中使用它,则可能需要查看JavaScriptDateTimeConverter

Serializing Dates in JSON