Артем Л.
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 лет назад
А еще наверное погрешность из-за того что время на сервере в секундах, а не в милисекундах?
Елена Б.
6863 сообщения
#9 лет назад
Microtime() ?
Артем Л.
11416 сообщений
#9 лет назад
floppox, да, супер, буду делать именно так, спасибо
Артем Л.
11416 сообщений
#9 лет назад
После использования microtime точность стала приемлемой и интервал сократился до 0.2 сек. Большое спасибо!