如何在服务和指令脚本文件中使用angular2内置日期管道

Che*_*hao 31 angularjs-directive angular-services date-pipe angular

我需要在服务和指令脚本文件中使用angular2的日期管道(不仅仅是HTML).

有人有想法吗?

无法上传代码有些政策限制,对不起.

Ale*_*nov 63

由于CommonModule不将其作为提供者导出,因此您必须自己进行.这不是很复杂.

1)导入DatePipe:

import { DatePipe } from '@angular/common';
Run Code Online (Sandbox Code Playgroud)

2)在模块的提供者中包含DatePipe:

NgModule({
  providers: [DatePipe]
})
export class AppModule {
}
Run Code Online (Sandbox Code Playgroud)

或组件的提供者:

@Component({
  selector: 'home',
  styleUrls: ['./home.component.css'],
  templateUrl: './home.component.html',
  providers: [DatePipe]
})
export class HomeComponent {
...
Run Code Online (Sandbox Code Playgroud)

3)像任何其他服务一样将它注入组件的构造函数中:

constructor(private datePipe: DatePipe) {
}
Run Code Online (Sandbox Code Playgroud)

4)使用它:

ngOnInit() {
    this.time = this.datePipe.transform(new Date());
}
Run Code Online (Sandbox Code Playgroud)


Avn*_*kya 16

尝试这样的事情:

new DatePipe().transform(myDate, 'yyyy-dd-MM');
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助.

  • 示例代码组合了两个答案`new DatePipe('en-US').transform(myDate,'yyyy-dd-MM');` (8认同)