Pass a datetime from javascript to c# (Controller) Pass a datetime from javascript to c# (Controller) jquery jquery

Pass a datetime from javascript to c# (Controller)


Try to use toISOString(). It returns string in ISO8601 format.

GET method

javascript

$.get('/example/doGet?date=' + new Date().toISOString(), function (result) {    console.log(result);});

c#

[HttpGet]public JsonResult DoGet(DateTime date){    return Json(date.ToString(), JsonRequestBehavior.AllowGet);}

POST method

javascript

$.post('/example/do', { date: date.toISOString() }, function (result) {    console.log(result);});

c#

[HttpPost]public JsonResult Do(DateTime date){     return Json(date.ToString());}


The following format should work:

$.ajax({    type: "POST",    url: "@Url.Action("refresh", "group")",    contentType: "application/json; charset=utf-8",    data: JSON.stringify({         myDate: '2011-04-02 17:15:45'    }),    success: function (result) {        //do something    },    error: function (req, status, error) {        //error                            }});


There is a toJSON() method in javascript returns a string representation of the Date object. toJSON() is IE8+ and toISOString() is IE9+. Both results in YYYY-MM-DDTHH:mm:ss.sssZ format.

var date = new Date();        $.ajax(       {           type: "POST",           url: "/Group/Refresh",           contentType: "application/json; charset=utf-8",           data: "{ 'MyDate': " + date.toJSON() + " }",           success: function (result) {               //do something           },           error: function (req, status, error) {               //error                                   }       });