Я пытаюсь сериализовать класс сущностей, который имеет некоторые поля \ DateTime. Все работает нормально, но объекты \ DateTime преобразуются в строку, используя следующий формат: «2019-10-21T01: 05: 12 + 00: 00», в то время как я хотел бы получить только часть даты: «2019-10-21».
Symfony документация упоминает формат по умолчанию, но не объясняет, как его настроить:
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']),
);
...
}
}