2

基本的に、チュートリアルに従ってチャットルームを作成しようとしています。

Ajax Web チャットのチュートリアル

時間が正しく表示されず、どこから始めればよいかわかりません。

STEP 1. チャットはユーザーのセリフをすぐに表示します (javascript の Date() を使用して正しく表示されるため、ユーザーはシステムが高速で迅速であると認識します)

ステップ 2. 次に、データベースに移動し、「ts」列に current_timestamp をタイムスタンプとして格納するチャットラインを格納します。

ステップ 3. その後、Ajax はデータベースからチャットラインを取得し、チャットを更新して「実際の」チャットラインを表示します。コードはユーザーのタイムゾーンに変換するはずですが、正しく表示されません。これは、私がどこにいるのかを理解するためのコードです。

チャットデータベースから時刻を取得: // チャット作成の GMT (UTC) 時刻を返す:

        $chat->time = array( 
            'hours'     => gmdate('h',strtotime($chat->ts)),
            'minutes'   => gmdate('i',strtotime($chat->ts))
        );

これは JavaScript に送信され、チャットルームのチャット ラインが更新されます。

// すべての時間はユーザーのタイムゾーンで表示されます var d = new Date();

    if(params.time) {
        // PHP returns the time in UTC (GMT). We use it to feed the date
        // object and later output it in the user's timezone. JavaScript
        // internally converts it for us.

        d.setUTCHours(params.time.hours,params.time.minutes);
    }
    params.time = (d.getHours() < 10 ? '0' : '' ) + d.getHours()+':'+
                  (d.getMinutes() < 10 ? '0':'') + d.getMinutes();

例: ユーザーがチャットラインを送信..

JavaScript プリント 11:07...

SQL は current_timestamp を 8:07 として保存します ...

PHP はデータベースからグラブし、それを 12:07 に変換します

d.setUTCHours = 1348834072033

最後に、params.time が javascript を使用して 8:07 に出力されます

他に欠けているものはないと思います。誰でも助けることができますか?数日間これを理解しようとすると、本当にうんざりします。Javascriptは良いです... SQLは本来すべきことを行っており、それを世界時または何かGMTに変換していると思いますか? :P と PHP は近いです.. 1 時間オフですが、javascript は本来の機能を実行しません :(

4

1 に答える 1

1

ここには 3 つの異なるシステムがあります。Web ブラウザー、データベース、および Web サーバー (PHP を実行) ですね。

それらは同期されていますか?それらは正しく構成されていますか? ここから始めるべきです。

http://en.wikipedia.org/wiki/Ntpd

https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html

http://php.net/manual/en/datetime.configuration.php

于 2012-09-28T15:27:24.067 に答える