Как найти правильный часовой пояс в JavaScript, даже если системные настройки неверны? - PullRequest
0 голосов
/ 31 августа 2018

Я создаю чувствительное ко времени веб-приложение, в котором пользователи вводят относящиеся ко времени данные по местному времени, и они сохраняются в формате UTC в базе данных. До сих пор приложение использует часовой пояс, который предоставляет браузер (который, я полагаю, использует часовой пояс, который предоставляет ОС). Проблема возникает, когда системный часовой пояс устанавливается владельцем компьютера вручную, и это может быть неправильно. Потенциальное решение будет получить правильный часовой пояс из Интернета. Но я бы предпочел не вызывать API где-либо, чтобы просто устанавливать правильные настройки часового пояса каждый раз, когда мне это нужно (если нет другого варианта). Кто-нибудь может предложить правильный способ решения этой проблемы?

1 Ответ

0 голосов
/ 31 августа 2018

Я не знаю, какие временные интервалы вы пытаетесь записать, но если пользователь выполнит ваши действия в вашем приложении, вы запустите таймер JS с 0, а затем вместо фиксированных временных отметок сохраните смещение от нуля, отправьте что все в вашем приложении (вместе с общим количеством секунд).

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

Например, если они выполняли действия в: 1 с, 60 с и 120 с, а общее время в вашем приложении составляло 200 с, вы могли бы сделать следующее:

first action is current_timestamp - 200s + 1s
second action is current_timestamp - 200s + 60s
third action is current_timestamp - 200s + 120s

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

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