本文在此文的基礎(chǔ)上進(jìn)行了拓展,把@angular/common中的datepipe能夠接受更多的value而不至于報(bào)錯(cuò)绑榴,或輸出無(wú)效值
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'類型或時(shí)間對(duì)象類型,并排除掉null
value = Date.parse(value);
return this.datePipe.transform(new Date(value), format);
}
} else if ((typeof value === 'number') && value !== NaN && value !== 0) {
// 后端返回的十位數(shù)或者十三位數(shù)
value = String(value).length > 10 ? value : value * 1000;
return this.datePipe.transform(new Date(value), format);
}
}
}
分享是為了更好的交流翔怎,如果文章考慮不周窃诉,還行不吝賜教!