PHP 来自 JIRA 的数组中的 DateTime 问题 api

PHP Issues with DateTime in array from JIRA api

我正在尝试将数据从 JIRA 中取出并放入 table。我已经让 API 请求正常工作,并且我已经从 JIRA 中获取了几乎所有数据并进入了我需要的 table数组中的日期时间对象,格式不正确。

    foreach ($ret->issues as $issue)
    {
            $date = new DateTime($issue->fields->created->date);
            $date = $date->format('Y-m-d');
        echo '<tr>
                <td>'.$issue->fields->status->name.'</td>
                <td>'.$date.'</td>
                <td>'.$issue->fields->priority->name.'</td>
                <td>'.$issue->fields->summary.'</td>
                <td>'.$issue->fields->assignee->displayName.'</td>
                </tr>';
    }

这是构建 table 的 PHP 代码,如您所见,我已尝试使用 DateTime 对其进行格式化。

如果我死于 $issue->fields->created

,这是数组
    object(DateTime)#318 (3) {
        ["date"]=>
        string(26) "2018-10-22 12:47:02.000000"
        ["timezone_type"]=>
        int(1)
        ["timezone"]=>
        string(6) "-04:00"
      }

$issue->fields->created->date 显示我似乎无法获取数据:

PHP Fatal error:  Cannot use object of type DateTime as array

这就是为什么我尝试将其格式化为上面的原因。现在我得到:

PHP Notice:  Undefined property: DateTime::$date

有什么想法吗?

$issue->fields->created 已经是一个 DateTime 对象。要将其格式化为 Y-m-d 格式,您只需直接调用 format() 即可:

echo '<tr>
    <td>'.$issue->fields->status->name.'</td>
    <td>'.$issue->fields->created->format('Y-m-d').'</td>
    <td>'.$issue->fields->priority->name.'</td>
    <td>'.$issue->fields->summary.'</td>
    <td>'.$issue->fields->assignee->displayName.'</td>
</tr>';

如果您想将其转换为不同的时区,您也可以这样做:

$issue->fields->created->setTimezone(new DateTimeZone("UTC"))->format('Y-m-d')