Как я могу иметь пустую дату в объекте DateTime?

Когда я получаю даты из запроса MySQL, некоторые из них имеют значение NULL, потому что они неизвестны.
Однако, когда я перевожу их в PHP с помощью date_create, нулевые даты по умолчанию заменяются на сегодняшние, что не то, что я хочу.
Я пытался установить свойство даты внутри объекта даты на ноль или пустую строку безрезультатно.
Есть ли какой-нибудь способ избавиться от этой даты по умолчанию?

1

Решение

$created_date = $date === null ? null : date_create($date);

Это троичное выражение, которое устанавливает $created_date обнулить, если $date является нулем, в противном случае он устанавливает его date_create($date),

1

Другие решения

Это, вероятно, устанавливается на null всякий раз, когда строка даты не может быть проанализирована в DateTime объект.

Я хотел бы предложить использовать DateTime::createFromFormat,

// Adjust the format to your requirements
$date = DateTime::createFromFormat('j-M-Y', '15-Feb-2009');

Изучив ваш вопрос лучше, я решил, что вы также можете сделать:

if (is_null($date)) {
$date = "0000-01-01";
}

$date = DateTime::createFromFormat('Y-m-d', $date);

Таким образом, дата будет установлена ​​на первый возможный день (1 января 0000)

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector