基本的に、チュートリアルに従ってチャットルームを作成しようとしています。
時間が正しく表示されず、どこから始めればよいかわかりません。
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 は本来の機能を実行しません :(