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!