1
resposta

[Bug] Formato data invertida

Segui exatamente as orientações para criar a função "formatarData" porém o input da data agora virou "mm/dd/aaa"a (formato americano), olhei o placeholder e continua escrito "dd/mm/aaaa", copiei o código original da aula e o problema continua o mesmo. Estou usando os componentes do typescript todos atualizados (2024), será que há alguma maneira de "forçar" esta formatação?

1 resposta

Olá Victor, tudo bem?

O método toLocaleDateString do JavaScript, que é usado para formatar a data, depende das configurações do seu sistema operacional. Isso significa que, se o seu sistema estiver configurado para o formato de data americano (mm/dd/aaaa), o método vai retornar a data nesse formato.

Mas é estranho de toda forma já que o código do professor "força" que seja pt-br:

    return data.toLocaleDateString("pt-br", {

Mas você pode tentar converter, a data da americana para a nossa ficando assim:

function formatarData(data: string): string {
    // Quebrar a string da data em partes
    const partes = data.split('/');
    // Obter os componentes da data no formato apropriado (ano, mês, dia)
    const ano = parseInt(partes[2]);
    const mes = parseInt(partes[0]) - 1; // subtrai 1 do mês, pois é baseado em zero
    const dia = parseInt(partes[1]);
    // Criar um novo objeto Date com os componentes corretos
    const dataObj = new Date(ano, mes, dia);
    // Formatar a data conforme desejado
    return dataObj.toLocaleDateString("pt-br", {
        weekday: "long",
        day: "2-digit",
        month: "2-digit",
        year: "numeric"
    });
}

Ou você pode tentar alterar a região para o Brasil tanto no navegador quanto no sistema operacional.

Reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!