日期字段值从客户端更改为服务器端

时间:2017-08-25 17:09:40

标签: c# jquery ajax asp.net-mvc date

我对控制器进行了AJAX调用,我使用JSON.stringify将数据发送到控制器操作。我的问题是客户端的日期字段是EDT(我的本地时间)在服务器端转换为GMT。我有什么办法让它继续留在美国东部时间。

这是我的代码:

var EndDate= new Date($('#TBEndDateTime').val().trim()); //EndDate= Sat Aug 26 2017 12:54:00 GMT-0400 (Eastern Daylight Time) (Console value while debugging)

var objEnd = JSON.stringify({
    EndDate: EndDate
})

$.ajax({
    type: "POST",
    url: "/Close/EndFunction",
    contentType: 'application/json',
    dataType: "json",
    data: objEnd,
    cache: false,
    success: function (result) {

    }
});

在服务器端

 public JsonResult EndFunction(FunctionEnd endFunction) //EndDate 2017-08-26T16:54:00.000Z
 {

 }

为什么会出现差异?如何解决?

编辑1: 使用.toISOstring也不起作用。

var EndOn = new Date($('#TBEndDateTime').val().trim()).toISOString(); //EndDate 2017-08-26T16:54:00.000Z

1 个答案:

答案 0 :(得分:1)

您需要做的是避免使用字符串来操纵您的代码。这是指向@ axel.michel指出的ISOstring()将帮助您。您还可以使用getTimezoneOffset()来获得正确的时区。

var EndDate= new Date($('#TBEndDateTime').val().trim());
EndDate= new Date(EndDate.getTime() - (EndDate.getTimezoneOffset() * 60000)).toISOString();