Изменение формата даты момента с узла на MongoDB - PullRequest
0 голосов
/ 27 мая 2019

Я создаю приложение на узле js и сохраняю дату в БД Mongo, тип данных Mongoose, который я использовал для сохранения, это Date.

  moment.locale("pt");
  today= moment().startOf("day").format();

Дата печатается как 2019-05-27T00:00:00-03:00

Но когда он сохраняется, и я пытаюсь получить дату, когда он приходит из mongo db, как 2019-05-27T03:00:00.000Z

Теперь сравнение не сработало. Поэтому я нахожу данные на основе этой даты, и она не работает.

Я использую локаль для Бразилии. Я сохраняю детали пользователя днем ​​с 00:00 до следующих 24 часов и собираю удачу для пользователей. У меня огромная база данных, и я хочу фильтровать данные по сегодняшней дате. Поэтому мне нужно, чтобы дата была сохранена в местном часовом поясе, то есть в Бразилии.

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 27 мая 2019

Я предлагаю перейти к UTC, затем изменить локаль, затем изменить дату, чтобы соответствовать началу дня, а затем сохранить как ms:

const d = moment
          .utc() // Get the UTC time
          .locale('pt_BR') // Change locale to Brazil
          .startOf('day') // Go back in time to current date @ 00:00:00
          .valueOf() // Get ms value

// store d in the database

...