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

[Dúvida] transformar formato de data dd-mm-yyyy para yyyy-mm-dd

Boa tarde, estou fazendo uma aplicação e surgiu uma dúvida. A data no banco de dados ta em formato yyyy-mm-dd, no momento que digito a data na input eu estou tentando enviar no formato normal dd-mm-yyyy que é o que todo usuário digita. Mas ao clicar em salvar, preciso que ele transforme novamente a data pro formato do banco que é yyyy-mm-dd. Como eu poderia implementar essa função ? é AngularTs

2 respostas
solução!

Olá Geovana, tudo bem com você?

Peço desculpas pela demora em obter um retorno.

Para converter a data no formato dia-mes-ano para ano-mes-dia em Angular, você pode usar a classe DatePipe fornecida pelo próprio Angular. A classe DatePipe permite formatar uma data em vários formatos de data e hora.

Para isso, no arquivo base do projeto, o arquivo app.module.ts, adicione as seguintes importações:

import { DatePipe } from '@angular/common';
import { registerLocaleData } from '@angular/common';
import localeBr from '@angular/common/locales/pt';
import { LOCALE_ID } from '@angular/core';
registerLocaleData(localeBr, 'pt')

Após isso, no mesmo arquivo, na configuração de providers, que é responsável por fornecer dependências que serão usadas por toda a aplicação, importe o módulo DatePipe:

 providers: [DatePipe, { provide: LOCALE_ID, useValue: 'pt' }],

Para utilizá-lo, caso queira utilizar uma função de conversão em seu componente, utilize a opção transform para modificar a data:

import { DatePipe } from '@angular/common';

export class DataComponent {

    formattedDate: string | null = null;

    constructor(private datePipe: DatePipe){
      const dataRecebidaDiaMesAno = '11/05/2023';
      const [dia, mes, ano] = dataRecebidaDiaMesAno.split('/');
      const data = new Date(Number(ano), Number(mes) - 1, Number(dia));
      console.log("Data digitada = " + dataRecebidaDiaMesAno)
      this.formattedDate = this.datePipe.transform(data, 'yyyy/MM/dd');
      console.log("Data em formato do Banco: " + this.formattedDate);
    }

}

Resultado no console:

Data digitada = 11/05/2023
Data em formato do Banco: 2023/05/11

Deixo como recomendação, um artigo caso queira se aprofundar no assunto de formatação de datas usando o DatePipe e também, a documentação da ferramenta:

Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

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

Muito obrigada, Felippe!