本文在此文的基础上进行了拓展,把@angular/common中的datepipe能够接受更多的value而不至于报错,或输出无效值
import { Pipe, PipeTransform } from '@angular/core';
import { DatePipe } from '@angular/common';
@Pipe({ name: 'dateLenOpe' })
export class DateLengthOperatorPipe implements PipeTransform {
constructor(
private datePipe: DatePipe,
) { }
transform(value: any, format: any) {
if (value === null || value === NaN || value === void 0 || value === 0) {
// 后端返还0,NaN,undefined
return '---'
} else if ((typeof value === 'string' || typeof value === 'object') && value !== null) {
if (Date.parse(value) === NaN) {
// 返回的是'1554422400'
value = value.length > 10 ? +value : value * 1000;
return this.datePipe.transform(new Date(value), format);
} else {
// 返回的是'2019-04-05'类型或时间对象类型,并排除掉null
value = Date.parse(value);
return this.datePipe.transform(new Date(value), format);
}
} else if ((typeof value === 'number') && value !== NaN && value !== 0) {
// 后端返回的十位数或者十三位数
value = String(value).length > 10 ? value : value * 1000;
return this.datePipe.transform(new Date(value), format);
}
}
}
分享是为了更好的交流,如果文章考虑不周,还行不吝赐教!