Сохранение Y-m-d в поле Datetime to DateTimeImmutable в Symfony

Я хочу сохранить формат даты 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

Что мне не хватает?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
52
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Чтобы сохранить дату в формате Y-m-d, вы можете использовать метод createFromFormat

$date = DateTimeImmutable::createFromFormat("Y-m-d", date("Y-m-d", $timestamp));

Я надеюсь, что это решит вашу проблему. Дайте мне знать, если у вас есть какие-либо вопросы

Спасибо но все равно сохраняет как 2023-01-17 15:10:23

tolga 17.01.2023 16:12

Чтобы убедиться, что дата сохраняется в формате «Г-м-д», когда вы сохраняете ее в базе данных, вам нужно изменить дату с объекта на строку и убедиться, что столбец в таблице базы данных, где вы сохраняете дату, является тип данных даты или varchar.

0xwaleed 17.01.2023 16:35
Ответ принят как подходящий

Здесь играют роль две проблемы:

1: ваша сущность ожидает объект DateTimeImmutable, но вы предоставляете string. Таким образом, чтобы решить эту проблему, используйте объект DateTimeImmutable для создания и передачи правильного типа объекта, который запрашивает ваш метод.

2: Вы хотите сохранить дату в определенном формате, Y-m-d. Для этого измените тип ORM\Column на date вместо dateTime.

Если вы хотите использовать формат Y-m-d в своем проекте, используйте для этого правильное форматирование.

Взгляните на документы для более глубокого понимания.

Другие вопросы по теме