Angular 4 |如何使用管道格式化日期?

时间:2017-11-14 02:43:55

标签: angular pipe

美好的一天,





如何使用角度管道格式化日期?我遇到了麻烦,因为它总是返回错误的日期。





以下是我格式化日期的方式。





实际值
 20170901




 < span> {{apidata.DeliveryDate |日期:'yyyy-MM-dd'}}< / span>
  




它返回(1970-01-01)





我该如何解决这个问题?




1 个答案:

答案 0 :(得分:0)

DatePipe转换ISO字符串中保存的Date对象或日期。您要格式化的是一个数字(这是一个真正的后端设计问题)...您可以将日期转换为实际格式,例如使用moment库:

apidata.deliveryDate = moment(apidata.DeliveryDate, 'YYYYMMDD').toISOString();

然后它会起作用。您还可以创建自定义管道,为您转换和格式化“日期”。组件内解决方案的示例代码:

// regular imports
import * as moment from 'moment';

@Component({
  template: `<span>{{apidata.deliveryDate | date: 'yyyy-MM-dd'}}</span>`
})
export class SomeComponent {
  apidata: any;

  constructor(someService: SomeService) { // <-- this is a service you get your data from
    this.someService.getApiData().subscribe((apidata) => {
      this.apidata = apidata;
      this.apidata.deliveryDate = moment(apidata.DeliveryDate, 'YYYYMMDD').toISOString();
    } 
  }
}