Eu fiz uma correção em um bug, que estava ocorrendo ao selecionar uma data superior a que estamos ao postar um pensamento. Exemplo: Hoje estamos no dia 06/10/2024, estava emitindo o alerta de erro somente ao selecionar uma data futura dois dias após a que estamos, então se eu tentasse postar uma data com o dia 07/10/2024 sendo que estamos no dia 06, nao ia emitir o alerta de erro. Eu fiz essa correção do bug e gostaria de compartilhar com os demais.
A alteração foi feita na função validarData(), o codigo estava assim:
function validarData(data) {
const dataAtual = new Date();
const dataInserida = new Date(data);
return dataInserida <= dataAtual;
}
com a correção do bug, o código ficou assim:
function validarData(data) {
const dataAtual = new Date();
// Zera horas, minutos e segundos da data atual
dataAtual.setHours(0, 0, 0, 0);
// Converte a data inserida
const dataInserida = new Date(data);
// Zera horas, minutos e segundos da data inserida
dataInserida.setHours(0, 0, 0, 0);
console.log('Data atual:', dataAtual); // Log da data atual
console.log('Data inserida:', dataInserida); // Log da data inserida
// Verifica se a data inserida é maior que a data atual
return dataInserida < dataAtual; //
}
Eu zerei Horas, Minutos e Segundos: Ao usar dataAtual.setHours(0, 0, 0, 0)
e dataInserida.setHours(0, 0, 0, 0)
, você está garantindo que as comparações entre as datas não sejam afetadas pelas horas, minutos ou segundos. Sem zerar essas partes, a comparação poderia falhar se, por exemplo, a data atual fosse 06/10/2024 10:30 e a data inserida fosse 06/10/2024 09:00. Nesse caso, a comparação dataInserida < dataAtual não funcionaria corretamente. Adicionei os consoles também para ajudar na depuração do código.