如何更改日期格式angular2

时间:2017-04-11 08:44:39

标签: angular pipe formatdatetime ng2-translate

您好我想根据选择的语言更改日期格式,我使用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" 可能吗? 或者有没有办法以编程方式更改格式日期?

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

您只需将翻译部分放入括号:

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

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

答案 2 :(得分:0)

尝试使用一些moment.js,它有一个自动更改时区的转换/语言环境设置和stuf

Moment js

docs of moment js