Angular2日期过滤器C#日期?

时间:2016-06-22 14:56:16

标签: angular

是否有内置的日期管道过滤器来处理日期,就像默认的asp.net JSON序列化程序一样,序列化日期?

以下为示例格式:' /日期(1466624402557)/'

否则我可以写一个自定义管道。

Per rinukkusu这里是我创建的自定义管道:

import {PipeTransform, Pipe} from '@angular/core';
import {SlicePipe, DatePipe} from '@angular/common';

@Pipe({
    name: 'aspDate'
})
export class AspDatePipe implements PipeTransform {
    transform(value: string, arg: string): any {
        let slicedValue = new SlicePipe().transform(value, 6, -2);
        return new DatePipe().transform(slicedValue, arg );
    }
}

但是我收到了这个错误:

platform-b​​rowser.umd.js:962 ORIGINAL EXCEPTION:无效的参数' 1466624402557' for pipe' DatePipe'

我已尝试将切好的字符串装入新的日期(),但这不起作用......

3 个答案:

答案 0 :(得分:2)

您可以利用内置管道slicedate来实现此目标:

{{ '/Date(1466624402557)/' | slice:6:-2 | date }}

否则转到自定义管道路径。您可以像参数date管道一样使用它:

@Pipe({
    name: 'aspDate'
})
export class AspDatePipe implements PipeTransform {
    transform(value: string, arg: string):any {
        let slicedValue = new SlicePipe().transform(value, 6, -2);
        return new DatePipe().transform(new Date(parseInt(slicedValue)), arg);
    }
}

在您的模板中:

{{ '/Date(1466624402557)/' | aspDate:'fullDate' }}
  

Plunker例如用法

答案 1 :(得分:1)

据我所知,不是。您可以参考API of the date pipe in Angular,这样您就必须自己实施

更新

根据Changelog数字日期,features添加了一个" datePipe:数字字符串支持"你可以看到related commit here

答案 2 :(得分:1)

以下是DatePipe,您可以直接查看它支持的内容。目前不支持该格式:

https://github.com/angular/angular/blob/5c8d3154d755f879d328739b78952fc88d38681f/modules/%40angular/common/src/pipes/date_pipe.ts