44

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

有人有想法吗?

由于某些政策限制,无法上传代码,对此感到抱歉。

4

2 回答 2

86

由于 CommonModule 不会将其导出为提供程序,因此您必须自己完成。这不是很复杂。

1)导入日期管道:

import { DatePipe } from '@angular/common';

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

NgModule({
  providers: [DatePipe]
})
export class AppModule {
}

或组件的提供者:

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

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

constructor(private datePipe: DatePipe) {
}

4)使用它:

ngOnInit() {
    this.time = this.datePipe.transform(new Date());
}
于 2016-12-22T12:04:12.490 回答
31

在您的组件中

import { DatePipe } from '@angular/common';

如果您使用的是 Angular 2、4 版本,请尝试

new DatePipe().transform(myDate, 'yyyy-dd-MM');

如果您使用的是 Angular 6 及更高版本

new DatePipe('en-US').transform(myDate, 'yyyy-dd-MM');

希望这会有所帮助。

于 2016-12-22T09:54:32.650 回答