Javascript serialization of DateTime in asp.net is not giving a javascript date object? Javascript serialization of DateTime in asp.net is not giving a javascript date object? javascript javascript

Javascript serialization of DateTime in asp.net is not giving a javascript date object?


This is a known limitation with JSON. This answer might help you, specifically:

value = new Date(parseInt(value.replace("/Date(", "").replace(")/",""), 10));


This seems to work (Thanks Chris S for the idea). In the C# do a replace to remove the string wrapper from around the date object;

    using System.Collections.Generic;        using System.Linq;        using System.Web;        using System.Web.UI;        using System.Web.Script.Serialization;        using System.Web.Script.Services;        using System.Web.Services;        using System.Web.UI.WebControls;        namespace test        {            [ScriptService]            public partial class testing: System.Web.UI.Page            {                protected string strCaseID;                protected string jsonCase;                protected void Page_Load(object sender, EventArgs e)                {                    if (!IsPostBack)                    {                        strCaseID =Tools.GetQueryObject("id");                        // get a complex object with dates, string, arrays etc.                        jsonESHACase = new JavaScriptSerializer().Serialize(objCase.Get(strCaseID ))                            .Replace("\"\\/Date(", "new Date(").Replace(")\\/\"", ")");                    }                }            }        }

..and after removing the quotes and adding the new prefix to Date this js now works. Hooray!

testCase= <%= jsonESHACase %>;    if (testCase) {        document.write(testCase["ClosingDate"].format("MM dd yyyy"));    }


Simple javascript manipulation like this:

function(param){  var date = new Date(parseInt(param.substr(6)));  return date;}

Pass in JSON date as param to the function and it will return a javascript date.