Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro com a biblioteca moment

Ao utilizar o código conforme apresentado na aula:

const moment = require('moment');
const conexao = require('../infraestrutura/conexao');

class Atendimento {
  adiciona(atendimento, res) {
    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) {
        res.status(400).json(erro);
      } else {
        console.log('dataCriacao :', dataCriacao);
        res.status(201).json(resultados);
      }
    });
  }
}

module.exports = new Atendimento

Ao executar o POST para criação de atendimentos várias vezes o log imprimiu as seguintes saídas:

dataCriacao : 2020-04-02 14:04:39
dataCriacao : 2020-04-02 14:04:93
dataCriacao : 2020-04-02 14:04:17
dataCriacao : 2020-04-02 14:04:92

Como podemos ver algumas vezes gerou segundos inválidos, como 93 segundos e 92 segundos. Nestes casos os registros foram gerados na tabela do banco de dados, mas a coluna dataCriacao ficou inconsistente com o valor 0000-00-00 00:00:00. Nos demais casos em que a data era válida criou corretamente. Como corrigir esse problema do moment?

Att.

2 respostas

Oi, tudo bem Gustavo?

Experimente utilizar hh:mm:ss em minúsculo, veja se resolve

solução!

Colocando as horas com "h" minúsculo a hora fica de 1 ... 12, então deixei o "H" maiúsculo e os segundo deixei com "s" minúsculo. Resolveu o problema:

const dataCriacao = moment().format('YYYY-MM-DD HH:mm:ss');

Muito obrigado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software