0

在 Angular2 中,我们可以使用 DatePipe 使用 typescript 格式化日期:

新 DatePipe(navigator.language || 'en-US').transform(mydate, 'medium')

但是,我想在 HTML 端执行此操作。我读到我可以这样做:

我的日期 | 日期:'中'

但是,这仍然没有考虑本地化,例如,它没有通过语言。如何在我的 HTML 中修改管道的用法,以便我也可以传递语言?

4

1 回答 1

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'}}

您可以在此处查看工作示例。

于 2017-09-07T23:52:21.550 回答