Сохранение дат в Монго через Compose.io против дат в Монго через Метеор - PullRequest
0 голосов
/ 02 октября 2018

В Метеоре:

Events.insert({ 'start': new Date(2018, 9, 5, 7, 0, 0, 0) });

В Метеоре Монго сохраненная дата:

{ 
  "start" : ISODate("2018-10-05T11:00:00.000+0000"), // UTC time
}

Браузер будет отображать дату как 7 утра, как и ожидалось (EDT).

ОДНАКО, в Compose.io та же самая вставка Монго сохранит дату:

{ 
  "start" : ISODate("2018-10-05T07:00:00.000+0000"), // UTC time
}

Браузер будет отображать дату как 3:00.

Кажется, что Метеор Монгодб делает правильную вещь, компенсируя мой EDT и прибавляя 4 часа.Композиция вставляет дату как есть.

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

1 Ответ

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

Мое решение состояло в том, чтобы использовать строку ISO 8601 без какого-либо смещения UTC вместо новой даты ().

Events.insert({ 'start': '2018-10-5T05:00:00);

Таким образом, Mongo не будет хранить ее как дату ISO, а будет просто строкой, которая будет считываться браузером как точная дата, введенная пользователем.Браузер не смещает часовой пояс, и он просто вставляется в виде строки как есть.

...