Когда я получаю даты из запроса MySQL, некоторые из них имеют значение NULL, потому что они неизвестны.
Однако, когда я перевожу их в PHP с помощью date_create, нулевые даты по умолчанию заменяются на сегодняшние, что не то, что я хочу.
Я пытался установить свойство даты внутри объекта даты на ноль или пустую строку безрезультатно.
Есть ли какой-нибудь способ избавиться от этой даты по умолчанию?
$created_date = $date === null ? null : date_create($date);
Это троичное выражение, которое устанавливает $created_date
обнулить, если $date
является нулем, в противном случае он устанавливает его date_create($date)
,
Это, вероятно, устанавливается на 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)