2017-01-13 9 views
0

クライアントブラウザにHTML形式があります。ユーザーは送信ボタンをクリックします。 JavaScriptによってXHRがサーバーに送信されます。 PHPは時間がof the arrival$_SERVER['REQUEST_TIME'])であることを知っていますが、提出の時間については何も知りません。どのように正確に計算することができますか?クライアントを離れるXHRの時刻を正確に判断する方法は?

+3

XHR要求にタイムスタンプを含めますか? – Pete

+0

良いアイデア、ありがとう。私はより正確な方法を探しています。クライアントクロックも正しく設定されていません。クライアントの時計とは関係なく、XHRに正しいタイムスタンプを含める方法はありますか? –

+0

いいえ、クライアントが正確なタイムスタンプを提供するのを信頼できないためです。 – Pete

答えて

1

示唆したように、あなたは追加のURLパラメータとして、あなたのXHRリクエストにタイムスタンプを追加したいと思います:

"?sent_at=" + (new Date()).getTime() 

覚えておくべき事はで日付のに対し、ジャバスクリプトの日付がミリ秒であるということですPHPはで計測されている - ので、あなたはPHPでそれを使用するときに、ブラウザからタイムスタンプを変換する必要がある場合があります、のようなもの:

$date = intVal($_REQUEST['sent_at'])/1000; 

あなたが本当ならばmillisecondの精度が必要な場合は、提出された値をそのまま使用することができます。

希望すると便利です。

+0

ありがとう、それは私が探しているものに本当に近いですが、私はクライアントの時計が間違って設定されている場合でも動作するソリューションを好むでしょう。それは可能ですか? –

+0

いいえ、それはできません。コンピュータの時計に頼ることになります。私は、リクエストがブラウザから送信された時間を保持するサービット変数を知らない。 – MacPrawn

+0

タイムスタンプが最初のページのロード時にサーバによって提供され、クライアントに保存され、最後にサーバーに?私は転送時間に対処する必要があります、私はしないでください? –

関連する問題