1
resposta

Moment está gerando a hora com minutos errados

Bom dia! Estou utilizando o Moment para gerar a data de criação do atendimento. Ele está determinando a data corretamente, mas a hora está incorreta. Por exemplo, agora a pouco a hora local era 9:50 da manhã, e o Moment calculou que a hora era 09:04:53. Além de que há momentos em que o MySQL nem aceita a data calculada pelo Moment, mesmo ela estando no mesmo formato do tipo DATETIME do banco de dados. Alguém saberia me auxiliar com esse problema? O uso do moment está no módulo models/atendimento.js, e este último está sendo utilizado para gravação no banco no módulo controllers/atendimento.js. É necessário criar um banco de dados com o nome "agenda-petshop" para testar a aplicação. Repositório da aplicação: https://github.com/gustavo-medeiros18/Express-simple-API

1 resposta

Olá Gustavo, Tenta fazer assim:

const moment = require('moment')

const conexao = require('../infraestrutura/conexao')
class Atendimento {
    adiciona(atendimento){
        const dataCriacao = moment().format('YYYY-MM-DD HH:mm:ss')
        const data = moment(atendimento.data, 'DD/MM/YYYY').format('YYYY-MM-DD HH:mm:ss')
        const atendimentoDatado = {...atendimento, dataCriacao, data}
        const sql = 'INSERT INTO Atendimentos SET ?'

        conexao.query(sql, atendimentoDatado, (erro, resultados) => {
            if(erro){
                console.log(erro)
            } else {
                console.log(resultados)
            }
        })
    }
}

module.exports = new Atendimento

Colocar a fromatação de horas e minutos em minúsculas. Veja tabém este link em caso de dúvidas adicionais. https://momentjs.com/docs/#/parsing/string-format/