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

[Bug] Erro após fazer alteração na data

Estou tendo problemas com a data, o que poderia ser?

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeApós adicionar o "00:00:00" na data as datas ficaram com alguns problemas:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

  • Assim que a transação é feita a data aparece como invalid Date;
  • Após atualizar a página a data aparece, porém marcado o ano errado( coloquei o ano de 2023, porém depois de atualizar vai para 1969);

Pensei que poderia ser algum erro no restante do meu código, porém quando retiro o "00:00:00" aparece certinho, porém marcando o dia anterior, como o professor disse: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas
solução!

Boa tarde,

Seria melhor ver seu código completo no Github ou algo do tipo.

  1. Data aparece como "invalid Date" após a transação: Pode ser que o problema esteja na forma como você está adicionando o "00:00:00" à data. Certifique-se de que está formatando corretamente e de que o resultado é uma data válida. Aqui está um exemplo em TypeScript:

    const dataString = "2023-11-09";
    const dataCompleta = new Date(`${dataString}T00:00:00`);
    
    if (isNaN(dataCompleta.getTime())) {
      console.error("Data inválida");
    } else {
      // Continue o processamento da data
    }
    

    Ao adicionar "T00:00:00" depois da string da data, você garante que a formatação está correta.

  2. Após atualizar a página, o ano aparece como 1969: Pode ser que o problema esteja na forma como você está configurando o ano no código. Certifique-se de validar a entrada e manipular corretamente o ano. Exemplo:

    const anoEntrada = 2023; // Substitua pela sua variável de entrada
    const anoAtual = new Date().getFullYear();
    
    if (anoEntrada < 1900 || anoEntrada > anoAtual + 10) {
      console.error("Ano inválido");
    } else {
      // Continue o processamento do ano
    }
    

    Ajuste as condições conforme as necessidades do seu projeto.

  3. Remoção do "00:00:00" resulta em data do dia anterior: Ao remover "00:00:00", você define a hora para o início do dia. Se isso mostrar o dia anterior, pode ser uma questão de fuso horário. Certifique-se de tratar os fusos horários corretamente usando métodos como toLocaleDateString:

    const dataFormatada = dataCompleta.toLocaleDateString("pt-BR"); // Substitua pelo local desejado
    

    Isso exibirá a data conforme as configurações de fuso horário do usuário.

ao lidar com datas no TypeScript, é útil usar bibliotecas como o date-fns para operações e formatações mais complexas. Exemplo:

import { format, isValid } from 'date-fns';

const dataString = "2023-11-09";
const dataCompleta = new Date(`${dataString}T00:00:00`);

if (isValid(dataCompleta)) {
  const dataFormatada = format(dataCompleta, "dd/MM/yyyy"); // Substitua pelo formato desejado
  console.log(dataFormatada);
} else {
  console.error("Data inválida");
}

Valeu!

Resolvido! Obrigada pela ajuda, estava faltando o "T" antes do "00:00:00", não tinha me atentado :)