首页 > 解决方案 > moment.js 将一切变成今天

问题描述

我快疯了 - 解决方案可能就在我面前 - 但是......

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

怎么了?任何人?

编辑: 我意识到这段代码没有任何问题,第一个建议也没有。我怀疑,问题在于这个片段是 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')

...提供了预期的输出——但这对我来说是零意义的。

标签: javascriptexpressmomentjs

解决方案


推荐阅读