如何在Angular中处理LocaleDateTime后端响应

时间:2019-12-02 13:36:22

标签: javascript angular typescript

我有一个表格行

<ng-container cdkColumnDef="date">
          <mat-header-cell *cdkHeaderCellDef fxFlex="10%">Date</mat-header-cell>
          <mat-cell *cdkCellDef="let payroll"
                    fxFlex="10%"> {{payroll.creationDateTime}}</mat-cell>
</ng-container>

在这里,我想以逻辑格式显示日期,但是来自后端的响应是:

{
"id": 5,
"employeeId": 42198,
"budgetGroupId": 15541,
"creationDateTime": {
"year": 2018,
"month": "MARCH",
"monthValue": 3,
"dayOfMonth": 1,
"dayOfWeek": "THURSDAY",
"dayOfYear": 60,
"hour": 19,
"minute": 24,
"second": 3,
"nano": 190000000,
"chronology": {
"id": "ISO",
"calendarType": "iso8601"
}
}
}

我如何以一种好的格式从那里获取creationDateTime,而又不一一并获取其所有内部值?

1 个答案:

答案 0 :(得分:0)

只需使用Date对象的重载即可。过载可以在mdn docs中看到:

  

新日期(年,月,索引[,天[,小时[,分钟[,秒[,   毫秒]]]]]]);

let dateObject = {
    "id": 5,
    "employeeId": 42198,
    "budgetGroupId": 15541,
    "creationDateTime": {
        "year": 2018,
        "month": "MARCH",
        "monthValue": 3,
        "dayOfMonth": 1,
        "dayOfWeek": "THURSDAY",
        "dayOfYear": 60,
        "hour": 19,
        "minute": 24,
        "second": 3,
        "nano": 190000000,
        "chronology": {
            "id": "ISO",
            "calendarType": "iso8601"
        }
    }
};

var date = new Date(dateObject.creationDateTime.year, 
   dateObject.creationDateTime.monthValue - 1, 
   dateObject.creationDateTime.dayOfMonth,
   dateObject.creationDateTime.hour, 
   dateObject.creationDateTime.minute, 
   dateObject.creationDateTime.second);
console.log(date);