我从过去 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" });
谢谢。