Обработка часового пояса - это правильный путь? - PullRequest
0 голосов
/ 12 октября 2018

Это мой первый раз в обработке часовых поясов.Вот сценарий:

  1. Сервер + База данных находится в часовом поясе UTC
  2. Клиент 1 находится в IST Клиент 2 находится в EST

  3. Данные, сохраненные клиентом EST, должны правильно отображаться клиенту в IST и наоборот

  4. Сервер запускает задание cron и считывает данные из базы данных.Необходимо правильно отображать уведомления для клиентов EST и IST в соответствии с их часовыми поясами

Технология

  1. Серверная ОС - Ubuntu (EC2)
  2. База данных -MySQL (UTC)
  3. Бэкэнд-сервер - Node.js
  4. Внешний интерфейс - Angular.jS

Что я думал

  1. В базе данных ведите два столбца: create_at, timezone_offset

    • созданный_at будет хранить все в UTC
    • смещение будет хранить разницу в UTC и пример соответствующего часового пояса: смещение для IST = 330 (минут) => 5 часов 30 минут
  2. Всякий раз, когда отправляете запрос на сервер с датой:

    • выберите местное время даты (созданный_ат)
    • найти смещение от UTC
    • преобразовать созданный_кат в UTC (используя момент)
    • отправить преобразованный созданный_счет, смещение на сервер
    • сохранить созданный_кат, смещение в базе данных как есть
  3. Для запуска cron на сервере

    • читать записи из базы данных, используя созданный_кат + смещение
  4. для возврата ответа API

    • возвращать созданный_ат (в UTC), смещение для каждой записи вjson response
    • Клиент для отображения даты и времени, используя созданный_кат + смещение (используя момент)

Это правильный способ обработки часового пояса?

Должен ли я использовать тип данных datetime для create_at в MySQL?

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