Я хочу сохранить формат даты Y-m-d в дату поля
#[ORM\Column]
private ?\DateTimeImmutable $created_at = null;
Когда я сохраняю эту отформатированную дату:
$date = new DateTimeImmutable();
$date->setTimestamp($timestamp);
$date->format("Y-m-d");
Symfony сохраняет в следующем формате:
2023-01-17 14:34:55
Когда я пытаюсь сохранить дату следующим образом:
$date = date("Y-m-d", $timestamp);
Я получаю сообщение об ошибке:
must be of type DateTimeImmutable, string given
Что мне не хватает?






Чтобы сохранить дату в формате Y-m-d, вы можете использовать метод createFromFormat
$date = DateTimeImmutable::createFromFormat("Y-m-d", date("Y-m-d", $timestamp));
Я надеюсь, что это решит вашу проблему. Дайте мне знать, если у вас есть какие-либо вопросы
Чтобы убедиться, что дата сохраняется в формате «Г-м-д», когда вы сохраняете ее в базе данных, вам нужно изменить дату с объекта на строку и убедиться, что столбец в таблице базы данных, где вы сохраняете дату, является тип данных даты или varchar.
Здесь играют роль две проблемы:
1: ваша сущность ожидает объект DateTimeImmutable, но вы предоставляете string. Таким образом, чтобы решить эту проблему, используйте объект DateTimeImmutable для создания и передачи правильного типа объекта, который запрашивает ваш метод.
2: Вы хотите сохранить дату в определенном формате, Y-m-d. Для этого измените тип ORM\Column на date вместо dateTime.
Если вы хотите использовать формат Y-m-d в своем проекте, используйте для этого правильное форматирование.
Взгляните на документы для более глубокого понимания.
Спасибо но все равно сохраняет как 2023-01-17 15:10:23