новый формат Date () во внешнем интерфейсе отличается от нового формата Date () во внутреннем интерфейсе - PullRequest
0 голосов
/ 05 февраля 2020

Итак, я получил веб-приложение, в котором пользователи могут приобрести «Однодневный доступ» к приложению. Идея состоит в том, что когда пользователи покупают, я обновляю пользователя со свойством endDate. После входа в систему я проверю, прошло ли значение в endDate. Моя модель:

const UserSchema = new Schema({
    username: {
        type: String,
        required: true
    },
    password: {
        type: String,
        required: true
    },
    endDate: {
        type: Date,
    },
});

Теперь странно то, что на моем веб-интерфейсе (а также в онлайн-песочницах, таких как JSFidlle & Playcode.io и т. Д.) Следующий код дает мне дату завтрашнего дня в следующий формат:

Формат: Thu Feb 06 2020 11:23:06 GMT+0100 (Central European Standard Time)

Код:

let day = new Date();
let nextDay = new Date(day);
nextDay.setDate(day.getDate() + 1);

console.log(nextDay); 

С точно таким же кодом на моем бэкэнд, результат даты в совершенно другом формате:

Формат: "2020-02-06T10:12:25.559Z"

Код:

router.get('/test', (req, res) => {
    let day = new Date();
    let nextDay = new Date(day);
    nextDay.setDate(day.getDate() + 1);
    res.send(nextDay)
})

Почему это происходит и что я могу сделать, чтобы формат выглядел одинаково? Я что-то упустил?

1 Ответ

1 голос
/ 05 февраля 2020

Причина различий: Когда данные отправляются с серверной части, они отправляются в виде строки JSON. По этой причине вы получаете строку ISO вместо объекта Date.

Решение Вы можете взять строку ISO и проанализировать ее, используя Новая дата (строка) снова в код внешнего интерфейса для просмотра так же, как вы хотите.

Другой способ - использовать модуль npm, известный как serialize- javascript, чтобы отправить его как объект вместо строкового JSON.

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