2016-06-24 7 views
1

ニューヨークからnode.jsサーバーが実行されていて、Webブローサーを使用してカリフォルニアから接続されているクライアントがあるとします。クライアントから呼び出されたDate.now()がサーバー上のnode.jsからDate.now()を50〜100ミリ秒以内に呼び出すのはどれくらい合理的ですか(正確に同じ瞬間に呼び出されたと仮定して) Date.now()は1970年1月1日00:00:00 UTCから経過したミリ秒数を返しますので、理論的にDate.now()はマシンとタイムゾーン間で常に一貫していなければなりません。Javascript Date.now()のマシン/タイムゾーン間の一貫性

+0

あなたはcleintとサーバーの日付をいくつかのパーシッション/エラーと一致させようとしていますか? –

+0

はclient_dateで、サーバーの日付は50〜100msの差で十分ですか? –

+1

クライアントコンピュータの時計は、いつでも設定できます。何とか正確に同期されると期待するのは無理です。 – JJJ

答えて

3

いいえ、必ずしもクライアントとサーバーの時刻が同期しているとは限りません。

理由の1つは、Date.now()は、ユーザーのOSのシステム時刻に基づいています。あなたはそれを支配しておらず、時は正しいかもしれないし、ちょっとばかりか完全に間違っているかもしれません。

あなたはそれを自分で試すことができます。

> Date.now() 
1466809144962 

> Date.now() 
1403650777388 

は、私は、Windowsで設定し、正しい時刻に1回、2回 Date.now()を走りました。その後、システムクロックの年を2014に変更し、 Date.now()を再度実行しました。

サーバー側の検証なしにユーザーの制御下にある情報の正確性には決して依存しないでください。

+0

なぜdownvote? – Timo

関連する問題