以 DD-MM-YYYY 格式将 Angular 返回日期到 formControl MatDatePicker

标签 angular datepicker angular-material formgroups

如何将日期正确地传送到formControl

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

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

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

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))));

最佳答案

您可以尝试使用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');

  }

}

关于以 DD-MM-YYYY 格式将 Angular 返回日期到 formControl MatDatePicker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57009435/

相关文章:

angular - 如何使用 `ngx-cookie-service` 设置 cookie 过期日期

Angular 单元测试模拟 paramMap 获取

html - 任何人都有一些用于 asp.net mvc 的下拉列表日期选择器

android - API 级别 24 中弃用的 DatePicker 上的 setSpinnersShown 和 setCalendarViewShown

javascript - 如何从javascript中的日期输入调用日期选择器?

javascript - 核心模块是否应该在 Angular2 中导入共享模块

html - 模板驱动的表单将所有标记标记为已触摸 - Angular 7

angular - 如何对此效果进行单元测试(使用 {dispatch : false})?

angular - 如何在 ngFor 循环中动态定义 formControl 名称?

javascript - 在 mailto : string not working as expected 中使用 es6 模板文字