【问题标题】:How to receive Date field from json service [duplicate]如何从json服务接收日期字段[重复]
【发布时间】:2016-08-13 07:21:24
【问题描述】:

我有一个类 Person,里面有一个日期字段:

export class Persoon {
   name: string;
   dateOfBirth: Date;
}

我的 Java 服务器给出了一个 json 字符串,例如:

{"person":{"name":"Jansen","dateOfBirth":"1959-04-16"}}

在调试器中,我得到的印象是 AngularJS2 认为它是一个字符串,当我使用日期管道时,会发生以下错误:

例外:[{{person.dateOfBirth | 中管道“DatePipe”的参数“1959-04-16”无效。日期:“dd-MM-yy”}} 在 PersonenComponent@26:10]

如何确定 dateOfBirth 日期?

【问题讨论】:

    标签: angular


    【解决方案1】:

    您需要将字符串字段映射到日期一:

    getList() : Observable<SomeModel[]> {
      return this._http.get(this._getListUrl).map(data => {
        return this.extractData(data);
      });
    }
    
    // parse a date in yyyy-mm-dd format
    function parseDate(input) {
      var parts = input.split('-');
      return new Date(parts[0], parts[1]-1, parts[2]); // Note: months are 0-based
    }
    
    private extractData(res: Response) {
      var data = res.json().data || [];
      data.forEach((d) => {
        d.dateOfBirth = this.parseDate(d.dateOfBirth);
      });
      return data;
    }
    

    看到这个问题:

    【讨论】:

    • 为什么会在这一行报错:var data = res.json().data || [];当我尝试使用此代码时? "Promise 类型上不存在属性数据"
    猜你喜欢
    • 1970-01-01
    • 2021-03-30
    • 2020-10-24
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 2012-07-17
    • 2011-09-17
    相关资源
    最近更新 更多