是否有内置的日期管道过滤器来处理日期,就像默认的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-browser.umd.js:962 ORIGINAL EXCEPTION:无效的参数' 1466624402557' for pipe' DatePipe'
我已尝试将切好的字符串装入新的日期(),但这不起作用......
答案 0 :(得分:2)
{{ '/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
,您可以直接查看它支持的内容。目前不支持该格式: