自动解析DateTime对象,以在学说中格式化的日期字符串



假设我获取了一些数组-Object(通过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字段...我认为至少是丑陋的解决方案,所以也许有一些在这种情况下,不错的解决方案或最佳实践?

我不明白为什么未设置您的创建字段。它应该是nullable = false/null中的数据库中的null,以便您不必检查。这将是最好的实践。

我的意思是,它是在某个时候创建的,但是没有创建?这没有道理:)

您可以使用Symfony serializer组件将数组序列化为JSON,并使用datetimenormalizer格式化DateTime对象。

use SymfonyComponentSerializerNormalizerDateTimeNormalizer;
use SymfonyComponentSerializerSerializer;
$encoders = array(new JsonEncoder());
$normalizers = array(new DateTimeNormalizer('Y-m-d H:i:s'));
$serializer = new Serializer($normalizers, $encoders);
$jsonResult = $serializer->serialize($result, 'json');

相关内容

  • 没有找到相关文章