Какова правильная структура для сохранения и работы с датами в JS? - PullRequest
0 голосов
/ 08 октября 2018

Если я напечатаю new Date(), я получу дату и час на основе определенного часового пояса.

И часовые пояса не совпадают:)

Это означает, что выходные данные будутотличается от разных мест.

Я думал об этой структуре для сохранения дат в БД:

{
  date: {
    text: "08-10-2018",
    timestamp: THE_TIME_STAMP
  }
}

А затем преобразовать метку времени в дату и время.

Я нехочу, чтобы каждый пользователь видел дату создания часового пояса создателя - я хочу, чтобы каждый пользователь видел дату создания на основе своего собственного часового пояса.

У меня вопрос: что мне сохранять в БД?Должен ли я использовать метку времени вместо?Метка времени будет соответствовать часовому поясу пользователя?Какова лучшая практика здесь?

1 Ответ

0 голосов
/ 08 октября 2018

Не хранить дату / время в строке.Это всегда плохая идея.

MongoDB имеет встроенный тип Date, который поддерживается его драйверами.Дата будет храниться в формате ISODate.Если у вас есть серверная часть nodejs, вам просто нужно предоставить объект даты JS, и драйвер все обработает.

Вы можете запросить данные для диапазона дат, которые вы не сможете сделать правильно, если сохраните егов виде строки.

Вы можете преобразовать UTC ISODate в часовой пояс зрителя на вашем веб-интерфейсе.

Если у вас есть интерфейс на основе js, вы можете использовать luxon или момент.js для преобразования в разные часовые пояса.

...