角度日期选择器在IE中显示错误的年份(而不是2019年,它显示1919年)



我不知道为什么IE从角度日期选择器显示错误的日期(年份(。在 chrome 中它工作正常,但在 IE 中则不行。 如果我得到日期 1/1/2019,它显示 1/1/1919,同样是 1/1/2016-->1/1/1916。基本上它显示了100年前。在铬中一切都很好(它显示 1/1/2019-->1/1/2019(

这是设置的值

if (releaseEntryTypeId === 1) {
this.releaseModificationItem.releaseManagementInteractiveForm
.get('startDate')
.setValue(moment.utc(this.releaseDetails.startDate).toISOString());
}

形式比伊尔德

this.releaseManagementInteractiveForm = this.formBuilder.group({
releaseEntryType: new FormControl(null, [Validators.required]),
..............................................
startDate: new FormControl(moment())
});

.HTML

<div class="schedule-release-date" *ngIf="formControls['releaseEntryType'].value === 1">
<mat-form-field [floatLabel]="">
<input required matInput [matDatepicker]="releaseDatePicker" placeholder="Release Date" [formControl]="formControls['startDate']">
<mat-datepicker-toggle matSuffix [for]="releaseDatePicker"></mat-datepicker-toggle>
<mat-datepicker #releaseDatePicker></mat-datepicker>
</mat-form-field>
</div>

我在堆栈溢出上发现了类似的问题:- 如何在 IE 浏览器中的 mat-datepicker 中修复两位数的年份?

根据解决方案,我尝试实现时刻,但它对我也不起作用

您可以参考此在线演示以使角度日期选择器在IE 11中工作。

您可以下载项目,cd 到项目中并运行npm install来安装项目。我还在本地修改了datepicker-moment-example.ts文件,如下所示:

...
import * as _moment from 'moment';
// tslint:disable-next-line:no-duplicate-imports
//import {default as _rollupMoment} from 'moment';
const moment = _moment;
...

该演示与您发现的类似问题的答案基本相同。您需要运行npm i moment来安装包并实现时刻。

最新更新