1
resposta

invalid Date

Utilizei o mesmo exemplo mostrado nas aulas, porém alterar a formatação da data está retornando invalid date. Quando removo o replace a data é apresentada. Por qual motivo isto ocorre? obs: no exemplo abaixo mantive apenas o campo da data.

private inputData: HTMLInputElement;

constructor() {
    this.inputData = document.querySelector('#data');
}

adiciona(): void {
    const negociacao = this.criaNegociacao();
}

criaNegociacao(): Negociacao {
//FUNCIONA
    const date = new Date(this.inputData.value); 

//NAO FUNCIONA - Invalid date
    const exp = /-/g;
    const date = new Date(this.inputData.value.replace(exp, ‘,’));


    return new Negociacao(date, quantidade, valor);
}
1 resposta

Olá Cassiano, tudo bem?

Desculpe a demora em retornar.

O erro "Invalid Date" ocorre porque a formatação da data não está sendo feita corretamente. Quando você utiliza o método replace para substituir o caractere "-" por ",", você está alterando a formatação da data para um formato que não é reconhecido pelo construtor de Date.

Para resolver esse problema, você pode utilizar o método split para separar os valores do dia, mês e ano e depois passá-los como argumentos para o construtor de Date. Por exemplo:

const valores = this.inputData.value.split('-');
const date = new Date(Number(valores[0]), Number(valores[1]) - 1, Number(valores[2]));

Dessa forma, você estará criando um objeto Date com a formatação correta da data.

Um abraço e bons estudos.