過去 1 年間から Asp.Net MVC のテレリック拡張機能を使用しています。
サーバーでの日付と SQL Server での日付と、テレリック列でレンダリングされる日付との間に大きな違いがあることに以前に気付きました。日付の違いを示すスクリーンショットが添付されています。
今までより多くの場所にグリッドがあり、この問題が頭を悩ませているため、この問題を克服するための集中型ソリューションを提案できますか。
グーグルで調べたところ、ブラウザーは通常、JavaScriptで日付をレンダリングする前にブラウザーのタイムゾーンの時間オフセットを追加することがわかったので、私の簡単な解決策は、取得している日付からそのブラウザーのタイムゾーンオフセットを差し引くことでした。
だから私はこれを処理するためにjavascript関数を追加しましたが、それでもソリューションは1つのタイムゾーンで機能しますが、他のタイムゾーンではより多くの違いを示しています.
私のサーバーは中央のタイムゾーンにありますが、ユーザーはすべて米国の他のタイムゾーンにいます。
誰でもこれに対する解決策を提案できますか?
ここに私の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" });
ありがとう。