如何确保日期选择器的格式设置为UTC

时间:2019-09-03 12:56:08

标签: angular

我在Angular 7日期选择器中显示日期有些麻烦。我创建了自己的日期适配器,以dd / MM / yyyy格式显示日期。 我面临的问题是UTC中的日期,将日期格式设置为dd / MM / yyy使它们看起来正确,但是,如果将日期时间设置为23:00,则日期显示为一天,但是在日期选择器设置为第二天(GMT + 1)。

我尝试使用时刻将日期选择器强制为UTC格式,但是,这似乎没有生效,并且仍然以我的本地时间考虑日期。

开始日期:2019-09-02T00:00:00Z

结束日期:2019-09-04T23:59:00Z

我尝试过的代码:

providers: [

  { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }
]

我的日期格式适配器:

export class UKDateAdapter extends NativeDateAdapter {

format(date: Date, displayFormat: Object): string {
     const day = date.getUTCDate();
     const month = date.getUTCMonth() + 1;
     const year = date.getUTCFullYear();

     return `${this._to2digit(day)}/${this._to2digit(month)}/${year}`;
  }

private _to2digit(n: number) {
    return ('00' + n).slice(-2);
  }
}

我希望在日期选择器中选择的值突出显示第4个,但仍显示为第5个。选择任何日期都会使它的值在1天后消失。

Date picker in action

0 个答案:

没有答案