当客户端和服务器位于不同的时区时,日期值减少1

时间:2017-01-19 07:47:44

标签: javascript jquery asp.net-mvc

我使用下面的代码从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保存在服务器上(在数据库中)。

如果客户端与服务器位于同一时区,则一切正常。

如何解决此问题?

0 个答案:

没有答案