我对控制器进行了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
答案 0 :(得分:1)
您需要做的是避免使用字符串来操纵您的代码。这是指向@ axel.michel指出的ISOstring()将帮助您。您还可以使用getTimezoneOffset()来获得正确的时区。
var EndDate= new Date($('#TBEndDateTime').val().trim());
EndDate= new Date(EndDate.getTime() - (EndDate.getTimezoneOffset() * 60000)).toISOString();