Расчет разницы во времени на стороне клиента - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть приложение, которое отображает список задач в пользовательском интерфейсе. Вместе с их прошедшими временами. Истекшее время - это разница между текущим временем и временем начала задачи. Я не могу сделать эти вычисления на стороне сервера. И я не могу доверять клиентской стороне, чтобы быть синхронизированным со временем сервера. Клиентская сторона знает время начала задачи, но здесь неизвестно текущее время. Из того, что я мог подумать, у меня есть два варианта:

  1. Добавить пользовательский заголовок «ServerTimeInMilliseconds» в заголовок ответа. Клиентская сторона подхватывает это и вычисляет разницу.
  2. Добавьте новую конечную точку, которая обеспечивает время сервера в милли.

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

Я не уверен, как обычно обрабатываются эти ситуации. Есть ли другой элегантный простой способ справиться с этим?

Редактировать: я не упомянул, что приложение является внутренним и может иметь или не иметь подключение к Интернету.

1 Ответ

0 голосов
/ 08 ноября 2019

Лучший точный способ сделать это - сообщить клиенту о вашем географическом местоположении. Таким образом, мы можем получить текущее время, используя часовой пояс вашего сервера.

Если вы не можете получить точный часовой пояс вашего сервера, вы можете использовать следующие API для получения его по географическому местоположению.

Часовой пояс карт Google Часовой пояс карт Microsoft Azure

Текущее время можно получить, передав часовой пояс часовой пояс момента , например так.

const currentTime = moment().tz(timezone).format();

Эта статья может вам помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...