角日期选择器在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())
    );

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>

我在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 日期选择器在点击时打开,而不是焦点

如何在 Jquery Date Picker 中添加请选择月份年份下拉菜单的选项?

日期选择器的弹出窗口显示错误的年份

Telerik rad 日期选择器在用户键入未来日期时显示错误消息