момент. js превращает все в сегодня - PullRequest
0 голосов
/ 06 августа 2020

Я схожу с ума - решение, вероятно, прямо передо мной - но ...

const moment = require('moment')
moment.locale('nb')

let dato = moment(Data.datoen)
let rettDatoStart = moment.utc(dato).startOf('day').toDate()
let rettDatoSlutt = moment.utc(dato).endOf('day').toDate()

... выходит как:

2020-08-05
2020-08-06T00:00:00.000Z
2020-08-06T23:59:59.999Z

Для запись, это написано 2020-08-06T22: 57: 00: 000Z

Что не так? Кто-нибудь?

EDIT: Я понимаю, что нет ничего плохого ни в этом коде, ни в первом предложении. Я подозреваю, что проблема в том, что этот фрагмент является частью операции asyn c внутри сервера express. js. Не понимаю, почему это проблема, но некоторые из вас могут?

Сервис. js:

const General = require('../../database/models/hotels/generalModel')
const Data = require('../../controller/hotels/generalController')
const moment = require('moment')
moment.locale('nb')


module.exports.getAllGeneral = async (serviceData) => {
    try {
        let dato = moment(Data.datoen)
        let rettDatoStart = moment.utc(dato).startOf('day').toString()
        let rettDatoSlutt = moment.utc(dato).endOf('day').toString()
        let generalen = await General.find({
            skaptdato: {
                $gte: rettDatoStart,
                $lte: rettDatoSlutt                 
            }
        });
        return generalen;     
    } catch (error) {
        console.log('Noe gikk galt: Service: getAllGeneral', error);
        throw new Error(error);
    }  
}

Контроллер. js:

const generalService = require('../../service/hotels/generalService');

module.exports.getAllGeneral= async (req, res) => {  
    
    // Hent datoen fra urlen og exporter den.
    const datoen = req.query.dato;  
    exports.datoen = datoen;     

    let response = {};
    try {
        const responseFraService = await generalService.getAllGeneral(req.body);
        response.datoen = datoen;
        response.status = 200;
        response.message = 'General Hotell er hentet! [controller]';
        response.body = responseFraService;
    } catch (error) { 
        console.log('Noe gikk galt: Controller: getAllGeneral', error);
        response.status = 400;
        response.message = error.message;
        response.body = {};
    }
    return res.status(response.status).send(response);
}

РЕДАКТИРОВАТЬ # 2: Как ни странно,

let dato = moment(Data.datoen).add(1, 'day')

... обеспечивает ожидаемый результат, но для меня это не имеет смысла.

...