дата увеличивается на день - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть дата в моей базе данных mongodb в следующем формате

{
    "_id" : ObjectId("5b8cd5e5cf36cb517c91910e"),
    "date" : ISODate("2018-09-04T23:58:00.000Z")
}

Когда я показываю его, используя момент на переднем конце, оно увеличивается на один день, поэтому 2018-09-04 становится 2018-09-05

На переднем конце я делаю это

moment(date).format('dddd MMM DD, YYYY')

Я хочу извлечь ту же дату из базы данных, что и 2018-09-04

Любая помощь приветствуется.

Редактировать ->

Когда я утешаю его на бэкэнде, я вижу это

date: 2018-09-04T23:58:00.000Z

и на передней части

date: "Thu Sep 06 2018 05:28:00 GMT+0530 (India Standard Time)"

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Mongodb хранит даты в форматах ISO, это зависит от того, где (в каких часовых поясах) находятся ваш сервер и клиент. Вы можете использовать ниже. Формат даты, которую вы получаете, - это формат UTC, когда он будет преобразован в IST, он покажет разницу. Это означает следующее: -

Если я получу 2019-09-26T18: 30: 00.000Z в качестве даты в UTC. Это эквивалентно пт 27 сентября 2019 00:00:00 по Гринвичу + 0530 (стандартное время Индии). Пожалуйста, посмотрите на разницу 5 часов 30 минут. Увеличивать / уменьшать любую вещь на этом и показывать в IST было бы снова неправильно с точки зрения часового пояса.

Если вы делаете

new Date(date).toUTCString()

Он покажет вам «Четверг, 26 сентября 2019 г., 18:30:00 по Гринвичу» В GMT, что точно.

0 голосов
/ 03 сентября 2018

Кажется, проблема с часовым поясом.

Если я бегу console.log(moment('2018-09-04T23:58:00.000Z').utcOffset("+00:00").format()); console.log(moment('2018-09-04T23:58:00.000Z').utcOffset("+05:30").format()); console.log(moment('2018-09-04T23:58:00.000Z').utcOffset("+00:00").format('dddd MMM DD, YYYY')); console.log(moment('2018-09-04T23:58:00.000Z').utcOffset("+05:30").format('dddd MMM DD, YYYY'));

я получаю 2018-09-04T23:58:00Z 2018-09-05T05:28:00+05:30 Tuesday Sep 04, 2018 Wednesday Sep 05, 2018

который выключен на один день

...