No meu helper eu tenho o seguinte código:
class DateHelper {
constructor() {
throw new Error("Essa classe não pode ser instânciada.");
}
static dataParaTexto(data) {
return data.getDate() + "/" + (data.getMonth() + 1) + "/" + data.getFullYear();
}
static textoParaData(texto) {
if(!/\d{4}-\d{2}-\d{2}/.test(texto)) throw new Error("Deve estar no formato aaaa-mm-dd.");
return new Date(...texto.split('-').map((item, index) => item - item % 2));
}
}
Quando eu uso o console do Chrome para fazer alguns testes algumas coisas parecem estranhas:
> let teste = DateHelper.textoParaData('2016-00-20');
<. Wed Jan 20 2016 00:00:00 GMT-0200 (Horário brasileiro de verão)
> teste = DateHelper.textoParaData('2016-01-20');
<. Wed Jan 20 2016 00:00:00 GMT-0200 (Horário brasileiro de verão)
> teste = DateHelper.textoParaData('2016-11-20');
<. Sun Nov 20 2016 00:00:00 GMT-0200 (Horário brasileiro de verão)
> teste = DateHelper.textoParaData('2016-12-20');
<. Fri Jan 20 2017 00:00:00 GMT-0200 (Horário brasileiro de verão)
As datas não apresentam da maneira correta algumas vezes. O que pode estar ocorrendo?