Создать документ и установить дату - Мангуст - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь создать документ в монго с полем даты: Дата.

Когда я публикую в API, у созданного документа будет другое время, которое я установил, следующим образом:

{
"serialnumber": "1234567",
"date": "2019-08-30T10:32"
}

Результат:

{
    "troubles": [],
    "_id": "5c35e9c8e726822a243936a9",
    "serialnumber": "1234567",
    "date": "2019-08-30T13:32:00.000Z",
    "updated": "2019-01-09T12:32:08.996Z",
    "__v": 0
}

Схема моего мангуста:

var MeasurementSchema = new Schema({
    serialnumber: String,
    date: Date
......

Как мы видели, я написал «T10: 32», но время параметра «date» приводит к 12: 32.

Какие-нибудь советы?

1 Ответ

0 голосов
/ 09 января 2019

MongoDB хранит время в UTC по умолчанию и преобразует любые представления местного времени в эту форму.

Приложения, которые должны работать или сообщать о некотором неизмененном значении местного времени, могут хранить часовой пояс вместе с отметкой времени UTC и вычислять исходное местное время в логике своих приложений.

Пример

В оболочке MongoDB вы можете хранить как текущую дату, так и смещение текущего клиента от UTC.

var now = new Date();
db.data.save( { date: now,
                offset: now.getTimezoneOffset() } );

Вы можете восстановить исходное местное время, применив сохраненное смещение:

var record = db.data.findOne();
var localNow = new Date( record.date.getTime() -  ( record.offset * 60000 ) );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...