typescript 材料的自定义日期适配器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript 材料的自定义日期适配器相关的知识,希望对你有一定的参考价值。

import { NativeDateAdapter } from '@angular/material/core';


export const TS_DATE_FORMATS = {
  parse: {
    dateInput: {month: 'short', year: 'numeric', day: 'numeric'},
  },
  display: {
    dateInput: 'input',
    monthYearLabel: 'inputMonth',
    dateA11yLabel: {year: 'numeric', month: 'long', day: 'numeric'},
    monthYearA11yLabel: {year: 'numeric', month: 'long'},
  },
};


export class TsDateAdapter extends NativeDateAdapter {

  parse(value: any): Date | null {
    if ((typeof value === 'string') && (value.indexOf('/') > -1)) {
      const str = value.split('/');
      const year = Number(str[2]);
      const month = Number(str[1]) - 1;
      const date = Number(str[0]);

      return new Date(year, month, date);
    }

    const timestamp = typeof value === 'number' ? value : Date.parse(value);
    return isNaN(timestamp) ? null : new Date(timestamp);
  }


  format(date: Date, displayFormat: any): string {
    if (displayFormat === 'input') {
      const day = date.getDate();
      const month = date.getMonth() + 1;
      const year = date.getFullYear();

      return this._to2digit(month) + '-' + this._to2digit(day) + '-' + year;
    } else {
      return date.toDateString();
    }
  }


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

}

以上是关于typescript 材料的自定义日期适配器的主要内容,如果未能解决你的问题,请参考以下文章

Java 数据类型的自定义 JSON 序列化

如何获得自定义网格的自定义材料

确认材料表中的自定义操作 [React]

材料ui的自定义输入中的Redux表单不起作用

Typescript:使用枚举的自定义接口类型

Mongoose Schema 类型作为 TypeScript 的自定义接口?