【问题标题】: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

【讨论】:

    猜你喜欢
    • 2023-03-25
    • 2016-06-13
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多