Почему значение new Date различается на сервере и клиенте?

Доброго времени суток, заметил вот такую картину:
a04996f616.jpg
Левое окно - браузер, правое - сервер node.js, везде запрашиваю значение new Date().getTime();
Почему так происходит и как с этим бороться? Мне нужно отправлять время начала анимации на клиент, а с этой проблемой сравнивать значения времени я не могу совсем.
  • Вопрос задан
  • 442 просмотра
Решения вопроса 2
BuriK666
@BuriK666
Компьютерный псих
Просто где-то (на клиенте, или на сервере, или и там и там) неправильно идут часы.

https://habrahabr.ru/post/146109/ п.11 -16.
Ответ написан
Комментировать
riky
@riky
Laravel
vetsmen:
в продолжение Как сделать синхронизацию анимации у пользователей?

в общем случае у клиента время может отличаться на минуты, если он не включил авто обновление и давно не обновлял, да и в общем то никогда нельзя надеяться что время будет везде одинаковое.

все очень просто, с сервака можно еще + текущее время отправить. чтобы на клиенте синхронизировать время.
то есть с сервака отправляем
- текущее время (new Date)
- время начала анимации (сохраненное в начале)
- угол

по идее все что изменилось с предыдущего варианта - вместо не точного клиентского времени используется точное серверное.

также на клиенте в момент получения этого сообщения тоже сделать new Date и высчитать временную разницу "сервер-клиент" deltaTime. в дальнейшем deltaTime можно прибавлять к клиентскому времени (new Date) чтобы получить текущее точное серверное.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы