2

こんにちは、チャット ボックスをコーディングしていて、投稿されたメッセージの横にユーザーの現在の現地時間をスタンプしたいと思います。だから私はjavascriptを使うことができました:

var date = new Date();

変数の文字列形式をサーバースクリプトに送信します

しかし、Javascript が有効化されていない場合はどうなるでしょうか?

Web ユーザーの割合が非常に低いことはわかっていますが、(サーバー側で) HTTP 要求でユーザーのローカル日付を取得する方法があるかどうかを知りたいです。

のようなもの$_SERVER['local_date']は素晴らしかったでしょうか?(存在しないことは知っていますが、とにかく同様の方法はありますか?)

4

3 に答える 3

2

私が考えることができる唯一の方法は、クライアントの IP アドレスを分析し、そこから郡を抽出することです。その後、時差を計算できます。

ただし、多くの場合は機能する可能性がありますが、信頼できるとは言えず、一部の国では複数のタイムゾーンがあるため、かなり信じられません.

<noscript>タグ内に「このチャットを使用するには、JavaScript を有効にしてください」などのメッセージを簡単に入れることをお勧めします。

于 2011-12-06T10:11:44.600 に答える
0

とにかくJS以外のクライアント側の時間を取得する方法はありますか? いいえ。

ただし、これはとにかく従来の実装がどのように機能するかではありません。

ほとんどの場合、クライアント側の時間を使用するのではなく、クライアント側の時間オフセットを使用します。

従来の実装では、対応するサーバー側のタイムスタンプと共にメッセージをデータベースに保存します (メッセージが受信されたときのサーバー上の時刻)。

表示されると、 client-time offsetを追加することでクライアント時間に調整されます。

クライアント時間オフセットは、いくつかの異なる方法で決定できます。

  • Javascript
  • デフォルトでタイムゾーンを設定し、ユーザーが別のタイムゾーンを指定できるようにします (このバージョンは、アカウントを登録する必要があるフォーラムで人気があります)。

オフセットを確立したら、次の 2 つの場所で調整を行うことができます。

  • クライアント側の時間がページに書き込まれるように、サーバー側のアプリケーション (PHP など) のいずれかで。
  • JavaScriptで

したがって、これまでに提供された答えは正しいですが、伝統的にどのように行われたかを説明したいだけです.

于 2011-12-06T12:56:05.397 に答える
0

システムのユーザーにタイムゾーンを指定するように依頼することもできますが、それはもちろん、ユーザーが実際にタイムゾーンを正しく設定しているかどうかに依存します。

于 2011-12-06T10:14:54.190 に答える