Angular 自定义时间管道,并拓展DatePipe

本文在此文的基础上进行了拓展,把@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);
        }
    }

}

分享是为了更好的交流,如果文章考虑不周,还行不吝赐教!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容