How to pass a JSON date value via ASP.NET MVC using JSON.NET?

Possible Duplicate:
Format a Microsoft JSON date?

The ASP.NET function Json() formats and returns a date as

{"d":"/Date(1240718400000)/"}

which has to be dealt with on the client side which is problematic. What are your suggestions for approaches to sending date values back and forth?


This was found in another post on Stack Overflow:

var date = new Date(parseInt(jsonDate.substr(6))); 

The substr function takes out the "/Date(" part, and the parseInt function gets the integer and ignores the ")/" at the end. The resulting number is passed into the Date constructor.


If you are not tied to the MS JSON serializer you could use Json.NET. It comes with an IsoDateTimeConverter to handle issues with serializing dates. This will serialize dates into an ISO 8601 formatted string.

For instance, in our project serializing myObject is handled via the following code.

JsonNetResult jsonNetResult = new JsonNetResult();
jsonNetResult.Formatting = Formatting.Indented;
jsonNetResult.SerializerSettings.Converters.Add(new IsoDateTimeConverter());
jsonNetResult.Data = myObject;

If you decide to take the Json.NET plunge you'll also want to grab JsonNetResult as it returns an ActionResult that can be used in ASP.NET MVC application. It's quite easy to use.

For more info see: Good (Date)Times with Json.NET


It may be ugly, but it works:

 var epoch = (new RegExp('/Date((-?[0-9]+))/')).exec(d);
 $("#field").text((new Date(parseInt(epoch[1]))).toDateString());

Probably, it is not necessary to match the whole string, and just (-?[0-9]+) is enough...

链接地址: http://www.djcxy.com/p/8150.html

上一篇: 将unix时间戳转换为javascript日期对象

下一篇: 如何使用JSON.NET通过ASP.NET MVC传递JSON日期值?