2009-03-23 14 views
5

ユーザーの現在のタイムゾーンに基づいて時刻を表示したいと考えています。私は自分のデータベースにUTC形式で時間を格納しますが、クライアントのタイムゾーンに標準化したいと考えています。これまで最も実現可能性が高いと思われるオプションは、クライアントの時間をキャプチャして、そのUTCと現在のUTCとの差を判断し、そのデルタを使用してレンダリング時の時間を標準化することです。私は、クライアントマシンの要求にUTC時間を検出して正規化するために利用可能なストレートフォワードオプションがあるかどうかを知りたいと思います。ASP.NETクライアント時間

+0

クライアントの時間が正確に設定されていることをどのように知っていますか?あなたは勝てません。 –

+0

私はそれを考えました...しかし、私は自分の時間(正解か間違って)に基づいていれば勝利だと考えます:)。 – JPrescottSanders

答えて

8

私はjavascriptのdateObject.getTimezoneOffset()を使用します。自分の時間が正確に設定されていない場合でも、うまくいけば、彼らは自分のタイムゾーンを設定しました:

http://www.w3schools.com/jsref/jsref_getTimezoneOffset.asp

あなたは、サーバーの時刻とクライアントの時間の間のオフセットを計算し、この値を使用することができます。

+0

あなたの解決策は正しいです。私は約6ヶ月前に私たちのWebアプリケーションのこの問題を解決しなければならず、同じ結論に達しました:クライアントのタイムゾーンで修正されたサーバー時間を使用します。 –

2

getTimezoneOffsetに加えて、または代わりに、ユーザーがプロファイルで優先するタイムゾーンを指定できるようにすることを検討する必要があります。例えば、ユーザは1つのタイムゾーンで訪問しているかもしれないが、彼のホームタイムゾーンに表示された時間を見ることを好むかもしれない。

また、これがJavaScript関数を呼び出すのと同じくらい簡単だった場合、サイトはあなたのタイムゾーンを尋ねる必要はありません。

0

より良い方法は、ユーザーが夏時間を観察する場合(自分のタイムゾーンに該当する場合)、ユーザーが選択した正確なタイムゾーンをユーザーごとに格納することです必要に応じて、(タイムゾーンに基づいて)DST情報を自動的に入力します。

あなたはサインアップの一部または "オプション"の部分にする必要があります。

関連する問題