Неправильное время и дата, когда я использую новые Date () mongoose и nodejs 10 - PullRequest
0 голосов
/ 05 мая 2018

Итак, у меня есть схема Мангуста с некоторыми типами свойств, установленными в Date. Но есть проблема, когда я сохраняю некоторые значения в базе данных, дата кажется либо на один день позади (и неправильный часовой пояс), либо просто совершенно неверной. Ниже приведена часть схемы

dob: {
    type: Date,
    required: [
        true,
        "Date of birth is required"
    ]
}

Итак, когда я сохраняю дату вроде: 12 июня 1993 года, я получаю это: 1993-06-11T22: 00: 00.000Z

Дата уже позади, и я не знаю, что это вызвало. Использование NodeJS 10, Mongoose 5.0.17

1 Ответ

0 голосов
/ 05 мая 2018

Это прекрасно. Когда вы сохраняете дату как «12 июня 1993 года», вы не предоставляете часовой пояс или его нет в формате ISO, поэтому он принимает его как метку даты в качестве локали, означающую, что он принимается в качестве даты вашего часового пояса (ваших серверов). Но он хранится в виде метки даты и времени ISO (GMT / UTC) и в результате стандартизируется.

Теперь при чтении даты и времени, если вы напечатаете дату в виде строки локали, вы увидите время как «12 июня 1993 года».

let date = new Date ('1993-06-11T22: 00: 00.000Z');

date.toLocaleString () // 12.06.1993, 3:00:00 AM

...