角日期选择器在IE中显示错误的年份(而不是2019年显示的是1919)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了角日期选择器在IE中显示错误的年份(而不是2019年显示的是1919)相关的知识,希望对你有一定的参考价值。
我不知道为什么IE从角度日期选择器显示错误的日期(年)。在chrome中,它可以正常工作,但在IE中则不能。如果我得到日期1/1/2019,它将显示1/1/1919,类似于1/1/2016-> 1/1/1916。基本上它显示了100年前。在chrome中,一切都很好(显示1/1/2019-> 1/1/2019)
这里是设置的值
if (releaseEntryTypeId === 1)
this.releaseModificationItem.releaseManagementInteractiveForm
.get('startDate')
.setValue(moment.utc(this.releaseDetails.startDate).toISOString());
formBiuilder
this.releaseManagementInteractiveForm = this.formBuilder.group(
releaseEntryType: new FormControl(null, [Validators.required]),
..............................................
startDate: new FormControl(moment())
);
<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>
我在stackoverflow上发现了类似的问题:-How do I fix a year of two digits in mat-datepicker in IE browser?
根据解决方案,我尝试实现时刻,但对我也不起作用
答案
您可以参考this online demo在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
以安装软件包并实施moment。
以上是关于角日期选择器在IE中显示错误的年份(而不是2019年显示的是1919)的主要内容,如果未能解决你的问题,请参考以下文章
如何使 kendo-angular-datepicker 仅显示年份
使 eternicode 日期选择器在点击时打开,而不是焦点