Как корректно вывести время из MongoDB?

Здравствуйте!

Может кто подскажет:
в MongoDB имеются записи, в консоли mongo, выполняю команду: db.logs.find()
записи выводятся с корректной датой/времени:
{ "_id" : ObjectId("59a01f6f9508d72ddcb4f67c"), "created" : ISODate("2017-08-25T16:00:31.618Z"), "__v" : 0 }
{ "_id" : ObjectId("59a01e399508d72ddcb4f67b"), "created" : ISODate("2017-08-25T15:55:21.234Z"), "__v" : 0 }
{ "_id" : ObjectId("59a01dd19508d72ddcb4f67a"), "created" : ISODate("2017-08-25T15:53:37.579Z"), "__v" : 0 }
то есть время соответсвует системному времени.

А когда в скрипте Node.JS обрабатываю отображение этих данных:
Log.find({}).sort({created: -1}).then(data => res.json(data));
то в браузер выводится другое время:
[{"created":"2017-08-25T13:00:31.618Z","id":"59a01f6f9508d72ddcb4f67c"},
{"created":"2017-08-25T12:55:21.234Z","id":"59a01e399508d72ddcb4f67b"},
{"created":"2017-08-25T12:53:37.579Z","id":"59a01dd19508d72ddcb4f67a"}]
разница -3 часа.
Уверен что это связанно с временными зонами, но не понимаю как настроить правильно, что нобходимо добавить в Node.JS, чтобы он не конвертировал это время, а отдавал как есть.

Уже думал может подключить momentjs, как в сети многие импользуют для работы с таймзонами, но куда его прописать, чтобы он отлавливал вывод между MongoDB и Node.JS

Может кто подскажет что нужно сделать?

P.S. Драйвер для работы с MongoDB использую: Mongoose

Заранее благодарен!
  • Вопрос задан
  • 2207 просмотров
Пригласить эксперта
Ответы на вопрос 1
boratsagdiev
@boratsagdiev
Может это?
https://docs.mongodb.com/manual/reference/method/Date/


Return Date as Date Object

The mongo shell wrap objects of Date type with the ISODate helper; however, the objects remain of type Date.

The following example uses new Date() to return Date object with the specified UTC datetime.

var myDate = new Date("2016-05-18T16:00:00Z");


moment.js'ом можете обработать даты после получения из базы, смотря вообще где вам нужно эти корректные даты отобразить. Можно и на клиенте.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы