1

我从过去 1 年开始为 Asp.Net MVC 使用 Telerik 扩展。

早些时候,我注意到服务器上的日期和 Sql Server 中的日期与 Telerik 列中呈现的日期之间存在一些重大差异。附件是显示日期差异的屏幕截图。

你能建议任何集中的解决方案来克服这个问题吗,因为到目前为止,更多的地方都有网格,这个问题让我很头疼。

经过一番谷歌搜索后,我发现浏览器通常会在用 javascript 呈现日期之前添加浏览器时区的一些时间偏移量,所以我的简单解决方案是从我得到的日期中减去浏览器时区偏移量。

所以我添加了一个 javascript 函数来处理这个问题,但该解决方案仍然适用于一个时区,但对于其他时区,它显示出更多的差异。

我的服务器位于中央时区,而用户都位于美国的其他时区。

任何人都可以建议我解决这个问题吗?

这是我的javascript函数

function parseToServerTimezone(date) {
        if (date != null) {
            var clientOffset = new Date().getTimezoneOffset();
            var newDate = new Date(date);
            newDate.setMinutes(date.getMinutes() - clientOffset);
            return $.telerik.formatString("{0:g}", date);
        }
        return date;
    }

这是它在网格中的使用方式,我所有的网格都是 ajax 绑定在这里

column.Bound(m => m.CapCycleStartDate).Title(Html.Resource("CapCycleStartDate")).ClientTemplate("<#= parseToServerTimezone(CapCycleStartDate) #>").Width(18).HtmlAttributes(new { align = "center" });

谢谢。

4

0 回答 0