如何更改日期格式angular2

How to change date format angular2

您好,我想根据所选语言更改日期格式,我使用 ng2-translate,这是我的工作代码,但它是静态的:

<span> {{product[col.field] | date : 'dd-MM-yyyy' >}} </span>

我想要一个当前语言的格式日期,如下所示:

<span> {{product[col.field] | date : 'DATE.PIPE' | translate >}} </span>

在 en.json 我有 "DATE": { "PIPE": "MM-dd-yyyy" 而在 it.json 我有 "DATE": { "PIPE": "dd-MM-yyyy" 可能吗? 或者有没有办法以编程方式更改格式日期?

尝试使用一些 moment.js,它有一个 translate/locale 设置可以自动更改时区和 stuf

Moment js

docs of moment js

只需从日期管道中删除单引号

<span> {{product[col.field] | date : DATE.PIPE | translate >}} </span>

它不起作用的原因是因为单引号使变量名成为一个字符串,它试图将它作为 DATE.PIPE 格式进行管道传输,但具有这样名称的格式不存在。希望它有意义。

这是一个示例代码

app.component.ts

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  dateFormat = {
    date: {
      pipe: 'dd-MM-yyyy'
  }
};
  today = Date.now();
}

app.component.html

<span> {{today | date: dateFormat.date.pipe}} </span>

您只需要将翻译部分放在括号中即可:

{{ product[col.field] | date : ('DATE.PIPE' | translate) }}

如果不这样做,date 管道将采用 'DATE.PIPE' 字符串作为其日期格式。