我有一个Angular模板,它实现了一个IgxDatePickerComponent。我在试图将控件的下拉部分和输入部分的日期格式化为英国格式时遇到了一个问题。
以下是我的控件代码
<igx-date-picker #dateFromDatePicker mode="dropdown" locale="en-GB"
cancelButtonLabel="close" todayButtonLabel="today">
<ng-template igxDatePickerTemplate let-openDialog="openDialog" let-value="value"
let-displayData="displayData">
<igx-input-group type="border">
<igx-prefix (click)="openDialog(dropDownTarget)">
<igx-icon>today</igx-icon>
</igx-prefix>
<label igxLabel for="dropDownTarget">Start Date</label>
<input #dropDownTarget class="igx-date-picker__input-date" igxInput [value]="displayData"
[igxMask]="'00/00/0000'" [placeholder]="'dd/mm/yyyy'" (blur)="changeStartDate($event)"/>
</igx-input-group>
</ng-template>
</igx-date-picker>
而组件代码是
changeStartDate(event) {
const input = event.target.value;
if (input !== '') {
const parsedDate = new Date(input);
if (this.isDateValid(parsedDate)) {
this.startDate = parsedDate;
}
} else {
this.dateFromDatePicker.deselectDate();
this.startDate = input;
}
}
当模糊事件发生时,event.target.value是 "29042020 "当这打下面一行代码。
const parsedDate = new Date(input);
parsedDate的结果是 "无效日期"。
我需要将 "29042020 "转换成一个有效的日期。我已经尝试了各种管道,但似乎都不奏效。
你必须格式化你的 displayDate
字符串,以便将其转换为有效的Date
const parsedDate = new Date(input.split('/').reverse().join("-"));
这将转换您的 "29/04/2020"
到 "2020-04-29"
那就可以 Date
.