【问题标题】:Pass language with Date Pipe in Angular 2 HTML template在 Angular 2 HTML 模板中使用日期管道传递语言
【发布时间】:2017-09-07 22:39:36
【问题描述】:
在 Angular2 中,我们可以使用 DatePipe 使用 typescript 来格式化日期:
new DatePipe(navigator.language || 'en-US').transform(mydate, 'medium')
但是,我想在 HTML 端执行此操作。我读到我可以这样做:
我的日期 |日期:'中'
但是,这仍然没有考虑本地化,例如,它没有通过语言。如何在我的 HTML 中修改管道的用法,以便我也可以传递语言?
【问题讨论】:
标签:
angular
typescript
angular2-template
date-pipe
【解决方案1】:
如果您想使用DatePipe,您只能使用那里提供的默认值,但是如果您想在模板中设置语言环境,无论是文字还是来自变量,您都可以定义一个自定义管道,例如这个:
import { Pipe, PipeTransform } from '@angular/core';
import { DatePipe } from '@angular/common';
@Pipe({name: 'dateWithLocale'})
export class DateWithLocalePipe implements PipeTransform {
constructor(){}
transform(value: string, locale: string, pattern: string): number {
return new DatePipe(locale).transform(value, pattern);
}
}
并像这样使用它:
{{time | dateWithLocale: 'en-US' : 'short'}}
您可以查看工作示例here。