6

dateutils.tz.tzlocal() が heroku で動作しないことを確認しました。動作したとしても、必ずしもユーザーではなく、コンピューターの OS から tz を取得するだけではないでしょうか?

ユーザーのタイムゾーンを保存する以外に、リクエストの送信元を特定する方法はありますか? (フラスコを使っています)

Twitter にはタイムゾーンを調整する設定がありますが、デフォルトをどのように決定し、ユーザーがログインしていないときにどのように機能するのか疑問に思っています.

4

2 に答える 2

9

Javascript を使用して、クライアントのタイム ゾーンを Cookie に設定できます。AJAX リクエストを使用して、オフセットをサーバーに送信し、クライアントのセッションに保存することもできます。

var offset = new Date().getTimezoneOffset();

説明

タイム ゾーン オフセットは、UTC と現地時間の分単位の差です。これは、ローカル タイムゾーンが UTC より遅れている場合はオフセットが正であり、進んでいる場合は負であることを意味します。たとえば、タイム ゾーンが UTC+10 (オーストラリア東部標準時) の場合、-600 が返されます。夏時間のため、この値は特定のロケールでも一定ではありません

Mozilla Javascript リファレンス: getTimezoneOffset

于 2012-08-27T16:43:29.413 に答える
1

ユーザーの IP アドレスをフラスコ内から (おそらくオブジェクトから) 簡単に取得できる場合は、request地理位置情報を使用できます。たとえば、 http://www.hostip.info/経由。

ただし、おそらく 100% 絶対確実というわけではありません。たとえば、誰かが VPN または別の種類のプロキシを使用している場合、その人の「実際の」IP アドレスは表示されません。

于 2012-08-27T16:32:41.410 に答える