【发布时间】:2019-10-29 14:36:48
【问题描述】:
我正在尝试序列化具有一些 \DateTime 字段的实体类。一切正常,但 \DateTime 对象使用以下格式转换为字符串:“2019-10-21T01:05:12+00:00”,而我只想获取日期部分:“2019-10-21 ”。
Symfony documentation 提到了默认格式,但没有解释如何配置它:
DateTimeNormalizer 这个规范器将 DateTimeInterface 对象(例如 DateTime 和 DateTimeImmutable)转换为字符串。默认情况下,它使用 RFC3339 格式。
是否可以更改默认的 DateTime 规范化格式以及如何更改?
实体类:
class Fact
{
/**
* @ORM\Column(type="datetime", options={"default": "CURRENT_TIMESTAMP"})
* @Groups({"api"})
*/
private $created_on;
}
归一化示例:
use Symfony\Component\Serializer\SerializerInterface;
class FactController extends AbstractController
{
private $serializer;
public function __construct(SerializerInterface $serializer)
{
$this->serializer = $serializer;
}
public function view($id)
{
....
$data = array(
'fact' => $this->serializer->normalize($fact, null, ['groups'=> 'api']),
);
...
}
}
【问题讨论】:
标签: symfony datetime serialization normalization