$playersObj = $query->select("updatedAt,playerId")->find();

if(!empty($playersObj)) {
foreach ($playersObj as $playerObj) {
$updatedAtObj = $playerObj->getUpdatedAt();
$date = $updatedAtObj->date;
}
}

这段代码得到的$data为 null

$playersObj = $query->select("updatedAt,playerId")->find();

if(!empty($playersObj)) {
foreach ($playersObj as $playerObj) {
$updatedAtObj = $playerObj->getUpdatedAt();
var_dump($updatedAtObj);
$date = $updatedAtObj->date;
}
}

但是加上这个var_dump这一句,就可以正常的获取到$data

这是什么情况。 要怎么解决

getUpdatedAt 返回的是 DateTime 对象,这个对象没有 ->date 方法。如果需要展示给用户,你需要调用 $playerObj->getUpdatedAt()->format(...) 。format 方法,请参考 php 官方文档。

不过我var_dump()之后确实可以用$updatedAtObj->date;这种方法取到值