首页 > 解决方案 > DatePicker 在 Chrome 中增加 1 小时

问题描述

我在前端有一个 Kendo DatePicker,当我尝试汇总日期时,它会在后端捕获时增加 1 小时。

它是一个 DatePicker(不是 DateTime),后端(在 C# MVC 中)使用 DateTime 属性。例如选择 16.06.1953 时,在后端我得到 16.06.1953 01:00:00(而不是 00:00:00)。

这只发生在 1980 年之前的日期以及从 3 月到 10 月的几个月内。16.11.1953 返回时间 00:00:00。

我在 Chrome 中遇到过这个问题,IE 工作正常。

编辑:CET 时区。有这个处理剑道日期选择器日期的javascript:

$(function () {
    var form = $("form");
    var dateBirthField = $("#Filter_DateBirth");

    if (dateBirthField.prop("defaultValue")) {
        var date = new Date(dateBirthField.prop("defaultValue"));
        if (!isNaN(date)) {
            dateBirthField.data("kendoDatePicker").value(date);
        }
    }

    form.submit(function () {
        var dateElement = dateBirthField.data("kendoDatePicker");

        if (!dateElement) {
            return;
        }
        var date = dateElement.value();
        if (date && !isNaN(date)) {
            dateBirthField.val(date.toISOString());
        }
    });
});

编辑 2:因此,Javascript 日期在 1970 年和 1980 年正确地不同 +1 或 +2 小时(夏季时间在 1979 年添加),但后端应用程序增加了这两个小时。所以:

date.toISOString()

导致“1953-06-15T23:00:00.000Z”,所以它减少了 1 小时,但应用程序错误地增加了 2 小时,而不是 1。我应该如何处理这个问题?

标签: c#model-view-controllerkendo-uidatepickerhour

解决方案


推荐阅读