假设我获取了一些数组对象(通过getArrayResult()
获取实体)并且它包含DateTime
字段。如果我转储这个字段:
"createdAt": {
"date": "2016-06-13 19:35:28.000000",
"timezone_type": 100500,
"timezone": "Some/Timezone"
}
我看到我没有正常(格式化好的)日期字符串,但是DateTime
对象。当然,我可以写这样的东西来获得漂亮的格式字符串:
$result['createdAt'] = $result['createdAt']->format("Y-m-d H:i:s");
但是如果我需要获取,例如,10.000项(不确定这发生了:))然后执行for
循环来更新每个createdAt
字段......我认为至少丑陋的解决方案,所以也许这种情况有一些很好的解决方案或最佳实践?
答案 0 :(得分:0)
我不明白为什么你的createdAt字段没有设置。它应该是nullable = false / NOT NULL在您的数据库中,这样您就不必检查。这是最好的做法。
我的意思是,它是在某个时刻创建的,但它没有创建于?这毫无意义:))
答案 1 :(得分:0)
您可以使用Symfony Serializer components将数组序列化为JSON,并使用DateTimeNormalizer格式化DateTime对象。
use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
use Symfony\Component\Serializer\Serializer;
$encoders = array(new JsonEncoder());
$normalizers = array(new DateTimeNormalizer('Y-m-d H:i:s'));
$serializer = new Serializer($normalizers, $encoders);
$jsonResult = $serializer->serialize($result, 'json');