5
respostas

data certa

Implementei o código new Date() passando a string sem o ajuste do mês e estou obteno a data correta. Houve alguma atualização da linguagem que fizesse com que isso acontecesse!?

5 respostas

Oi, Ricardo, tudo bem?

Como você fez a declaração da instância Date? Vendo a documentação, a especificação para mês, ainda se começa com o valor 0, ai precisamos acrescentar 1 para ficar de acordo. https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Date#Two%20digit%20years

Olá Lais,

segue a declaração da minha classe e como está aparecendo no console:

lass Negociacao {

constructor(data, quantidade, valor) {

    // o _ é uma convenção que esses atributos só podem ser acessados e alterados apenas pelos métodos das classes

    this._data = new Date(data.getTime());
    this._quantidade = quantidade;
    this._valor = valor;
    Object.freeze(this);

} get volume(){ return this.quantidade * this.valor;

}

get data(){
    return new Date(this._data.getTime());
}

get quantidade(){ //get é uma espécie de métodos que é acessado como se fosse uma propriedade - sem os ()
    return this._quantidade;
}

get valor(){
    return this._valor;
}

}

CONSOLE:

Negociacao {data: Sat Nov 12 2016 00:00:00 GMT-0200 (Horário de Verão de Brasília), _quantidade: "1", _valor: "11"} _data: Sat Nov 12 2016 00:00:00 GMT-0200 (Horário de Verão de Brasília) {} _quantidade: "1" _valor: "11" data: (...) quantidade: (...) valor: (...) volume: (...) _proto__: Object

Estranho que dar o getMounth() realmente aparece o mês 10.

Adicionalmente, não realizei a arrow function na função "adiciona":

adiciona(event) { event.preventDefault();

      let data = new Date(this._inputData.value.split('-'));

      let negociacao = new Negociacao(

        data, 
        this._inputQuantidade.value,
        this._inputValor.value
      );

Oi, Ricardo, tudo bem?

Se você fizer o teste do objeto data sem o split, o dia vai ser decrescido de 1, e o dia colocado na negociação não será compatível ao dia terá na saída. Isso porquê o split transforma um objeto string e uma array de subtring, ou seja, ele pega o valor data e divide ele. Assim, o objeto data aceita o data que é adicionada em negociação.