1

そのため、有効期限が切れる Cookie を設定しています。しかし、私はこれが世界中で機能することを望んでいます。そのため、ユーザーのタイムゾーンに合わせて有効期限を調整する必要があります。

したがって、サーバー側でユーザーのタイムゾーンを見つける必要があります。

BCLでこれを行う方法はありますか? のように、CultureInfo.CurrentUICulture が正しく設定されていることに依存し (MonoRail LocalizationFilter は設定されていると思いますが、まだ適切にチェックしていません)、ユーザーがどのタイムゾーンにいるのかを把握します (夏時間も考慮します)。そこにも)それに基づいて?

.NET 3.5 には System.TimeZoneInfo がありますが、ID が何であるか (ISO コードかどうか) に関するドキュメントはほとんどありません。

それとも、クライアント側の何かに依存して、たとえば Date.getTimezoneOffset() からこの情報をプッシュするのでしょうか? クライアント側が嘘をつくので、私はそれを避けたいと思います。

4

3 に答える 3

1

IPジオロケーション(他の人が言及した理由から悪い考え)またはJavaScript((タイムゾーンのために)あいまいすぎるため、あまり良くありません)以外に、ユーザーのタイムゾーンを取得する方法はありません.

最良のオプションは、ユーザーがある種のユーザー コントロール パネルを介して自分でタイム ゾーンを設定できるようにすることです。そうすれば、ユーザーがいるタイム ゾーンを正確に把握し、ユーザーがタイム ゾーンを確認できるようになります。

将来、いくつかの優れた地理位置情報機能がブラウザーに追加される予定ですが、それが本番環境で使用されるのはまだ先のことです。

JavaScript を使用して自動検出を行うことにした場合は、ユーザーのシステムの日付をスキャンして DST がいつ発生するかを調べ、GMT オフセット (DST 内であっても) を取得するこれらのスクリプトをお勧めします。

http://www.attackwork.com/BlogEntry/3/Time-zone-detect-and-ignore-Daylight-Saving-Time-DST/Default.aspx http://www.attackwork.com/BlogEntry/11/Daylight -Saving-Time-DST-Detect/Default.aspx

まだあまり良いアイデアではありませんが、うまくいきます。

于 2008-12-12T03:02:26.933 に答える
1

とても簡単です。サーバーに asp:hidden フィールドを配置し、現在のサーバーの日付/時刻を入力します。クライアントで、非表示フィールドの日付/時刻をクライアントの現在の日付 (new Date()) から減算すると、GMT からのオフセットが得られます。サーバー上で行う場合はその逆です (例: 非表示フィールドの new Date()、非表示フィールドの値からサーバー時間を減算します)。

于 2008-12-10T21:45:32.173 に答える
0

クライアントのタイムゾーンを決定する良い方法はありません。彼らの IP アドレスを追跡して、そこに場所を関連付けようとすることもできますが、これはトリッキーでエラーが発生しやすい (一部のロケーターは、すべての AOL の使用をバージニアに置いています)。

クライアント側でそれを行うのが最善だと思います。

于 2008-12-10T12:08:21.403 に答える