Лучше всего синхронизировать время сервера со временем пользователей

#javascript #time #browser #server #utc

Вопрос:

Я не тестировал, но я предполагаю, что время/дата UTC в среде пользователей(веб-браузерах) будет зависеть от того, на какой хост-компьютер был установлен. Если я компенсирую свое время, возможно, на 10 минут, время UTC моего компьютера также будет опаздывать на 10 минут, что не будет соответствовать глобальному/интернет-времени.

Попытка найти разницу между моим временем, которое опаздывает на 10 минут, и глобальным временем с другого сервера, синхронизированного с интернет-временем, приведет к непредсказуемому результату.

Какова наилучшая практика для обработки этого сценария, учитывая экземпляр, который требует, чтобы пользователь знал, как давно на сервере произошло действие за считанные секунды?

Комментарии:

1. Компьютер всегда должен использовать клиент NTP, который будет обрабатывать синхронизацию времени. Действительно, без действительного времени/даты на вашем компьютере вы не сможете сделать какой-либо запрос HTTPS, поэтому интернет будет бесполезен. Я бы предположил, что время пользователя действительно; но если вы хотите знать, сколько минут назад произошло какое-то событие, просто обратитесь к серверу с просьбой: сообщите мне дату/время события И разницу между временем события и текущим (серверным) временем

2. Я столкнулся с этим с помощью функции отслеживания времени, когда серверные часы были неправильными на пару минут, и о правильном использовании NTP, по-видимому, не могло быть и речи. Моя мысль состояла в том, чтобы указать время UTC сервера в data атрибуте HTML, чтобы JavaScript мог рассчитать и применить смещение в секундах (сетевое время было приемлемым) ко всем локальным датам. Но мне так и не удалось его реализовать.