Reputation: 1836
I want to use angular2's date pipe in services and directives script files(not only in HTML).
Does anyone have any ideas?
Can't upload code cos some policy restrictions, sorry about that.
Upvotes: 51
Views: 77419
Reputation: 3906
In your component
import { DatePipe } from '@angular/common';
If you are using Angular 2, 4 version, try
new DatePipe().transform(myDate, 'yyyy-dd-MM');
If you are using Angular 6 and above
new DatePipe('en-US').transform(myDate, 'yyyy-dd-MM');
Hope this will help.
Upvotes: 35
Reputation: 4794
Since CommonModule does not export it as a provider you'll have to do it yourself. This is not very complicated.
1) Import DatePipe:
import { DatePipe } from '@angular/common';
2) Include DatePipe in your module's providers:
NgModule({
providers: [DatePipe]
})
export class AppModule {
}
or component's providers:
@Component({
selector: 'home',
styleUrls: ['./home.component.css'],
templateUrl: './home.component.html',
providers: [DatePipe]
})
export class HomeComponent {
...
3) Inject it into your component's constructor like any other service:
constructor(private datePipe: DatePipe) {
}
4) Use it:
ngOnInit() {
this.time = this.datePipe.transform(new Date());
}
Upvotes: 105