Nodejs Mongoose: пытается сохранить дату в часовом поясе UTC, но сохранить ее в местном часовом поясе - PullRequest
0 голосов
/ 17 мая 2018

Я новичок для nodejs и mongodb. Я использую mongoose для mongodb и сталкиваюсь с проблемой, связанной с проблемой, всякий раз, когда я пытаюсь сохранить дату в базе данных, она автоматически конвертируется в местный часовой пояс, однако этого не должно быть.

Я установил часовой пояс узла "UTC" в файл .env, и он работает, когда я выполняю console.log (new Date ()), он возвращает мне текущую дату и время в соответствии с UTC. Но когда я пытался сохранить его в мангусте, он конвертировался в местный часовой пояс. Я пробовал это с полем Дата , а также с отметками времени : true он конвертирует оба в местный часовой пояс.

Мой код // Мангуст модель

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var activitySchema = new Schema({
    'userId': Number,
    'data': Array,
    'otherDetails': Array,
    'date':Date
}, {
    timestamps: false
});
module.exports = mongoose.model('activity', activitySchema);

// Сохранить код

let na = new Date().toISOString().replace(/T/, ' ').replace(/\..+/, '')+".100";
 var activity = new activityModel({
            userId : req.user.user_id,
            otherDetails : req.body.otherDetails,
            data : req.body.data,
            date : na.toString()

        });

        activity.save();

1 Ответ

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

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

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