首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP -返回空抛出错误的日期时间

问PHP -返回空抛出错误的日期时间
EN

Stack Overflow用户
提问于 2019-08-14 09:08:27
回答 1查看 97关注 0票数 1

我正在从db中提取一些数据,但是我的DateTime字段引起了问题。

如果我设置了DateTime字段,它会返回很好的结果,但是当我将它设置为NULL时,它总是会抛出一个错误。

我的第一个代码:

代码语言:javascript
复制
$results = $this->getMyRepository()->findAll();

$rows = [];

$rows[] = array(
    "id",
    "created"
);

foreach ($results as $row) {
    $rows[] = [
        $row->getId(),
        $row->getCreated(new \DateTime())->format('Y-m-d'),
    ];
}
return $rows;
}

错误:

调用null上的成员函数格式

我的第二个更改$row->getCreated()分配:

代码语言:javascript
复制
$row->getCreated() ?? new \DateTime('now'))->format('Y-m-d');

这意味着:

代码语言:javascript
复制
> Coalesce operator is available in PHP 7 only.

当我执行php -v时,它在Symfony 3.4上显示PHP7.2.19-0ubuntu0.18.04.1。以及该代码的其他语法错误。

有人能帮我处理synatax或者告诉我如何使日期时间工作在NULL上吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-14 09:48:39

如果PHP 7在您的机器上运行,您可以这样做:

代码语言:javascript
复制
$row->getCreated() ?? (new \DateTime('now'))->format('Y-m-d');

所以在新的日期时间之前有一个额外的(

如果你必须用更低的PHP版本来做

代码语言:javascript
复制
$createdAt = $row->getCreatedAt();
if (!$createdAt) {
    $now = new DateTime('now');
    $createdAt = $now->format('Y-m-d');
}

$rows[] = [
    $row->getId(),
   $createdAt,
];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57491568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档