以DD-MM-YYYY格式向FormControl MatDatePicker返回的角度返回日期

时间:2019-07-12 14:52:17

标签: angular datepicker angular-material formgroups

如何正确地将日期带到formControl

尝试通过setValue设置日期时,它不再以相同的格式出现。

我希望日期以DD-MM-YYYY的格式显示,与我输入的日期相同,但是当通过代码返回时,该组件仅接受MM-DD-YYYY

我已经尝试通过代码反转MM的DD并返回,但是仍然没有完成。

HTML

<input matInput [matDatepicker]="picker4" placeholder="Data prevista pagamento" formControlName="dataPrevistaPagto">
<mat-datepicker-toggle matSuffix [for]="picker4"></mat-datepicker-toggle>
<mat-datepicker #picker4></mat-datepicker>

我输入这样的日期:

TS

ModelEdit.dataPrevistaPagto = this.setDate(this.form.get('dataPrevistaPagto').value);

setDate(dataString: string){
  var today = new Date(dataString);
  var dd = String(today.getDate()).padStart(2, '0');
  var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
  var yyyy = today.getFullYear();

  var dataa = dd + '/' + mm + '/' + yyyy;
  return dataa;
}

我这样设置日期:

this.form.get('dataPrevistaPagto').setValue( moment(new Date(this.setDateInverse(this.ModelEdit.dataPrevistaPagto))));

1 个答案:

答案 0 :(得分:0)

您可以尝试使用Angular Date Pipe实现它 已经有一个Stackblitz Demo供您参考。

只需将当前格式从Stackblitz yyyy-MM-dd更改为所需的格式dd-MM-yyyy或按照Angular Date Pipe Documentation上的其他类似格式

@Component({
  ..., 
  providers: [ DatePipe ]    // Import DatePipe from "@angular/core"
})
export class AppComponent implements OnInit  {

  currentDate: any = new Date();

  constructor(private datePipe: DatePipe) {}

  ngOnInit(): void {
    // You can use whatever format you like
    // see https://angular.io/api/common/DatePipe#pre-defined-format-options
    this.currentDate = this.datePipe.transform(this.currentDate, 'dd-MM-yyyy');

  }

}