我使用下面的代码从jQuery datepicker获取日期值。
function GetViewModelData() {
var actionViewModel = [];
var rowCount = $('#myDynamicTable tbody tr').length;
var actionDate;
for (i = 1; i <= rowCount; i++) {
actionDate = document.getElementsByClassName("txtDateOfAction")[i - 1].value;
var parts = actionDate.split("/");
var dt = new Date(parseInt(parts[2], 10), parseInt(parts[1], 10) - 1, parseInt(parts[0], 10));
var rdtViewModel = new DetailsViewModel(0, dt);
actionViewModel.push(rdtViewModel);
}
var obj = new ReportViewModel(0, actionViewModel);
var viewmodel = JSON.stringify(obj);
return viewmodel;
}
然后我使用下面的代码将我的值发送到SQL服务器数据库。
var SubmitData = function() {
$(".btnSave").click(function() {
Loader();
var viewmodel = GetViewModelData();
var actionCode = $.trim($("#actionCode").val()).toLowerCase();
$.ajax({
async: true,
cache: false,
contentType: 'application/json; charset=utf-8',
data: viewmodel,
headers: GetRequestVerificationToken(),
type: 'POST',
url: '/' + virtualDirectory + '/Submission/Save',
success: function(data) {
$("#divMaster").html(data);
return false;
},
error: function(e) {
alert("An error occured");
return false;
}
});
});
}
我面临的问题是,如果客户端和服务器位于不同的时区,则客户端选择的日期值在保存在服务器上时会减少1。
例如,如果客户选择19/01/2017,它将在18/01/2017保存在服务器上(在数据库中)。
如果客户端与服务器位于同一时区,则一切正常。
如何解决此问题?