Jad*_*ade 6 typescript angular angular7
所以我试图显示此日期作为输入。但是在我的表单构建器组中设置它的值时未显示。我也希望能够对其进行格式化。
this.post.startDate是日期类型
.ts中的内容
this.editForm = this.formBuilder.group({
startDate: [this.post.startDate, Validators.compose([Validators.required])],
endDate: [this.post.endDate, Validators.compose([Validators.required])]
});
Run Code Online (Sandbox Code Playgroud)
我的反应形式有这个
<form [formGroup]="editForm" (ngSubmit)="saveDate()">
<label>Start Date: </label>
<input type="date" formControlName="startDate" name="startDate" />
<br />
<label>End Date: </label>
<input type="date" formControlName="endDate" name="endDate" />
<br /><br />
<input type="submit" value="Create Date">
</form>
Run Code Online (Sandbox Code Playgroud)
小智 6
试试内置的formatDate包。
import { formatDate } from '@angular/common'
Run Code Online (Sandbox Code Playgroud)
然后转换您的日期并将其设置为 datepicker 控件
this.yourForm.controls.controlName.setValue(formatDate(date,'yyyy-MM-dd','en'));
Run Code Online (Sandbox Code Playgroud)
您可以通过两种方法将日期设置为默认值。
变体1:
要将默认日期值设置为使用date <input>类型的标签,则应使用valueinput-tag的HTML属性。
例:
<form [formGroup]="editForm2">
<input type="date" formControlName="startDate" value="{{ post.startDate | date:'yyyy-MM-dd' }}">
<input type="date" formControlName="endDate" value="{{ post.endDate | date:'yyyy-MM-dd' }}">
</form>
Run Code Online (Sandbox Code Playgroud)
变体2(推荐):
您可以formatDate()在angular中使用内置函数。
步骤1:
fromatDate()从@angular/common您的组件打字稿文件中导入。
import { formatDate } from '@angular/common';
Run Code Online (Sandbox Code Playgroud)
提示:formatDate(yourDate, format, locale)需要3-4个参数。
第2步:
在表单组的定义中格式化日期。
this.editForm = this.formBuilder.group({
startDate: [formatDate(this.post.startDate, 'yyyy-MM-dd', 'en'), [Validators.required]],
endDate: [formatDate(this.post.endDate, 'yyyy-MM-dd', 'en'), [Validators.required]]
});
Run Code Online (Sandbox Code Playgroud)
这是工作示例:https : //stackblitz.com/edit/angular-kucypd
以下是输入类型日期的文档:https : //developer.mozilla.org/zh-CN/docs/Web/HTML/Element/input/date
| 归档时间: |
|
| 查看次数: |
837 次 |
| 最近记录: |