Как вычислить разницу во времени между сервером и клиентом?
11416 сообщений
#9 лет назад
Задача такая:Есть время на сервере, есть время на компьютере пользователя.
Нужно вычислить разницу между ними как можно точнее.
Делаю к примеру так:
<script>
var s = parseInt(<?=time()*100;?>);
var c = parseInt(new Date().getTime() / 10);
var dif = s - c;
alert(dif);
</script>
При тестировании разница во времени составляет примерно: 5.20 - 6.40 секунд.
Погрешность в районе 1.2 секунды в этой задаче очень много.
Можно как-то сократить этот интервал значений? Или эта задача не выполнима?
2 сообщения
#9 лет назад
Погрешность будет всегда, а к чему такая точность?
6863 сообщения
#9 лет назад
Ну, происзождение погрешности очевидно - это время на загрузку скрипта. Убрать не реально. Минимизировать - получать время сервера аяксом большое количество раз, вычислить среднюю скорость доставки ответа, вычесть ее из средней разницы во времени.
11416 сообщений
#9 лет назад
Спасибо, думаю это поможет, буду пробовать 
YoshiMuraKun, точность очень нужна, задача довольно специфическая

11416 сообщений
#9 лет назад
А еще наверное погрешность из-за того что время на сервере в секундах, а не в милисекундах?
11416 сообщений
#9 лет назад
floppox, да, супер, буду делать именно так, спасибо 
11416 сообщений
#9 лет назад
После использования microtime точность стала приемлемой и интервал сократился до 0.2 сек. Большое спасибо!