如何使用 Angular 7 更改 formGroups 输入元素的日期格式?
How can I change date format for formGroups input element with Angular 7?
当输入类型为 'Date' 时,日期格式为 dd/MM/yyyy
。
我想将日期格式从 MM/dd/yyyy
更改为 dd/MM/yyyy
(土耳其语格式和土耳其日历)。
这是代码。
<form [formGroup]="opportunityForm" (ngSubmit)="updateData(opportunityForm.value)">
<div class="form-group">
<label>Oluşturulma Tarihi</label>
<input type="date" class="form-control" formControlName="createDate" required>
<div class="alert-danger" *ngIf="!opportunityForm.controls['createDate'].valid && (opportunityForm.controls['createDate'].touched)">
<div [hidden]="!opportunityForm.controls['createDate'].errors.required">
Tarih alanı gerekli
</div>
</div>
</div>
<button type="submit" class="btn btn-primary" [disabled]="!opportunityForm.valid">Güncelle</button>
</form>
constructor(private http: HttpClient,private fb: FormBuilder,private router: Router,private actRoute: ActivatedRoute, private service:OpportunityService) {
this.opportunityForm=this.fb.group({
title:['',Validators.required],
description:['',Validators.required],
createDate:['',Validators.required],
expirationDate:['',Validators.required],
file: new FormControl(null)
});
建议和解决方案将不胜感激。
您可以操作您的 formControl 字段 'createDate'。
使用 angular 提供的 DatePipe 以任何需要的格式更改日期。
首先,在组件的 ts 中导入 DatePipe:
import { DatePipe } from '@angular/common';
在提供者数组中注入日期管道:
styleUrls: ['component.css'];
providers: [DatePipe] // like this you inject pipe,services
在构造函数中声明:
constructor(
private datePipe: DatePipe
) { }
你可以制作一个操作日期的函数;只需调用 updateData(formValue)
或直接在 updateData(formValue)
方法
中操作日期
// 使用 DatePipe 进行日期操作
const datePipe = this.datePipe.transform(this.opportunityForm.get('createDate').value, 'dd-MM-yyyy')
有多种方法可以做到这一点,但是你能解释一下你是否想在 html 中更改格式吗?如果不是,我建议您使用 formatDate
而不是 datePipe
,我认为这更容易。
在您的 .ts 文件中执行此操作。
import { formatDate } from '@angular/common';
this.opportunityForm.value.createDate = formatDate(this.opportunityForm.value.createDate, 'yyyy/MM/dd', 'en');
// 'yyyy/MM/dd' format can be replaced with however you want to
我使用 DatePipe 解决了这个问题,以便在后端制作我想要的格式。
而且我还更改了 browser.Thus 的语言,用户可以看到用户想要的日期格式。
当输入类型为 'Date' 时,日期格式为 dd/MM/yyyy
。
我想将日期格式从 MM/dd/yyyy
更改为 dd/MM/yyyy
(土耳其语格式和土耳其日历)。
这是代码。
<form [formGroup]="opportunityForm" (ngSubmit)="updateData(opportunityForm.value)">
<div class="form-group">
<label>Oluşturulma Tarihi</label>
<input type="date" class="form-control" formControlName="createDate" required>
<div class="alert-danger" *ngIf="!opportunityForm.controls['createDate'].valid && (opportunityForm.controls['createDate'].touched)">
<div [hidden]="!opportunityForm.controls['createDate'].errors.required">
Tarih alanı gerekli
</div>
</div>
</div>
<button type="submit" class="btn btn-primary" [disabled]="!opportunityForm.valid">Güncelle</button>
</form>
constructor(private http: HttpClient,private fb: FormBuilder,private router: Router,private actRoute: ActivatedRoute, private service:OpportunityService) {
this.opportunityForm=this.fb.group({
title:['',Validators.required],
description:['',Validators.required],
createDate:['',Validators.required],
expirationDate:['',Validators.required],
file: new FormControl(null)
});
建议和解决方案将不胜感激。
您可以操作您的 formControl 字段 'createDate'。
使用 angular 提供的 DatePipe 以任何需要的格式更改日期。
首先,在组件的 ts 中导入 DatePipe:
import { DatePipe } from '@angular/common';
在提供者数组中注入日期管道:
styleUrls: ['component.css'];
providers: [DatePipe] // like this you inject pipe,services
在构造函数中声明:
constructor(
private datePipe: DatePipe
) { }
你可以制作一个操作日期的函数;只需调用 updateData(formValue)
或直接在 updateData(formValue)
方法
// 使用 DatePipe 进行日期操作
const datePipe = this.datePipe.transform(this.opportunityForm.get('createDate').value, 'dd-MM-yyyy')
有多种方法可以做到这一点,但是你能解释一下你是否想在 html 中更改格式吗?如果不是,我建议您使用 formatDate
而不是 datePipe
,我认为这更容易。
在您的 .ts 文件中执行此操作。
import { formatDate } from '@angular/common';
this.opportunityForm.value.createDate = formatDate(this.opportunityForm.value.createDate, 'yyyy/MM/dd', 'en');
// 'yyyy/MM/dd' format can be replaced with however you want to
我使用 DatePipe 解决了这个问题,以便在后端制作我想要的格式。 而且我还更改了 browser.Thus 的语言,用户可以看到用户想要的日期格式。