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

Formato padrão do retorno do value do campo data com dia e mês invertidos

No meu console a data sem tratamento vem no seguinte formato: '2016-12-11' ou 'Y/d/m' e não 'Y/m/d' conforme aparece no seu navegador, rs.

Até mudei o idioma de volta para português no meu notebook, mas permanceu gerando assim.

Para resolver o script, utilizei a opção do split e concatenei com base nos índices.

Aconteceu com alguém ou alguém sabe explicar por que acontece isso?

    console.log(typeof(this._inputData.value));
    console.log('data sem tratamento: '+this._inputData.value);
    let newDate = this._inputData.value.split('-');
        newDate = newDate[0]+','+newDate[2]+','+newDate[1];
    console.log('newDate = '+newDate);

    let negociacao = new Negociacao(
        new Date(newDate),
        this._inputQuantidade.value,
        this._inputValor.value
    );

    console.log(negociacao);
2 respostas
solução!

Na verdade, é o meu input que está no formato 'm/d/Y'. Por que será?

No input do professor, aparece o formato dd/mm/aaaa e no meu mm/dd/yyyy.

PS: Cliquei nessa opção como solução sem querer, a solução ficou no meu comentário após esse.

Ah, na verdade era o type date do HTML5.

Ele pega o formato do navegador. Bastou definir o idioma padrão para Brasileiro. Assim, o campo date apareceu com o formato dd/mm/aaaa. :)

Aliás, meu código acima fica com bugs, porque não trata corretamente o objeto Date. Então, Deixei com a solução passada pelo professor:

new Date(this._inputData.value.replace(/-/g, ','))

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