【问题标题】:Angular and date from PHP InvalidPipeArgument: 'Unable to convert "[object Object]" into a date' for pipe 'DatePipe'来自PHP InvalidPipeArgument的角度和日期:'无法将“[object Object]”转换为管道'DatePipe'的日期'
【发布时间】:2020-12-26 16:00:37
【问题描述】:

我有用 Angular 9 编写的应用程序和用 PHP 编写的 api。从 PHP 中的控制器,我返回具有属性 finishDate 的对象列表。在 PHP 中,finishDate 被分配给 DateTime:

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

TypeScript 中的 TimeSheetsOrderDTO:

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

在 TypeScript (Angular) 中,我看到来自控制器的数据如下:

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

我想在 html 中显示finishDate。当我有这样的代码时:

{{ timesheetsOrder.finishDate }}

我明白了:

当我这样写的时候:

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

我得到错误:

core.js:6241 ERROR Error: InvalidPipeArgument: 'Unable to convert "[object Object]" into a date' for pipe 'DatePipe'

【问题讨论】:

    标签: php angular date-pipe


    【解决方案1】:

    在您的尝试中,timesheetsOrder.finishDate 指的是整个对象,而不是其中的日期属性,这就是您收到错误的原因。

    使用以下语法:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-11
      相关资源
      最近更新 更多