2

I have application written in Angular 9 and api written in PHP. From controller in PHP I return list of objects with property finishDate. In PHP finishDate is assign to DateTime:

$timeSheetsOrderDTO1 = new TimeSheetsOrderDTO;
$timeSheetsOrderDTO1->orderId = 62131;
$timeSheetsOrderDTO1->finishDate = new DateTime();
$timeSheetsOrderDTO1->count = 8;

TimeSheetsOrderDTO in TypeScript:

export class TimeSheetsOrderDTO {
  public orderId: number;
  public finishDate: Date;
  public count: number;
}

In TypeScript (Angular) I see data from controller as below:

this.timesheetsOrders: Array(4)
0:
count: 8
finishDate: {date: "2020-12-26 15:49:15.052904", timezone_type: 3, timezone: "UTC"}
orderId: 62131

I want to display finishDate in html. When I have code like this:

{{ timesheetsOrder.finishDate }}

I see: date like Object object

When I write like that:

{{ timesheetsOrder.finishDate | date : 'yyyy-MM-dd'}} 

I get error:

core.js:6241 ERROR Error: InvalidPipeArgument: 'Unable to convert "[object Object]" into a date' for pipe 'DatePipe'
Robert
  • 343
  • 1
  • 3
  • 14

1 Answers1

2

In your attempt, timesheetsOrder.finishDate refers to the entire object and not the date property within it which is why you get an error.

Use the following syntax:

{{ timesheetsOrder.finishDate.date | date : 'yyyy-MM-dd'}} 
Nicholas K
  • 15,148
  • 7
  • 31
  • 57