Symfyony выдает ошибку разбора DateTime

Я пытаюсь получить created_at поле из таблицы базы данных, но выдает следующую ошибку:

Внутренне сохраненное значение даты / времени / отметки времени не может быть преобразовано в
DateTime: ‘

готовить

‘[wrapped: DateTime :: __ construct (): не удалось
строка времени разбора (

готовить

) в позиции 0 (<): Неожиданно
персонаж]

Код для получения даты:

foreach ($pager->getResults() as $row):
?>
<tr>
<td><?php echo $row->getTitle()  ?></td>
<td><?php echo ($row->getStatus()) ? 'Active' : 'Inactive' ?></td>
<td><?php echo date(sfConfig::get('app_display_alternate_format_for_date'), strtotime($row->getCreatedAt())) ?></td>
<td>
</td>
</tr>

Конфиг для даты:

‘app_display_alternate_format_for_date’ => ‘M-d-Y’

Сохранение даты в формате БД:

2017-09-15 08:08:02

Базовая функция getCreatedAt в BaseModel:

public function getCreatedAt($format = 'Y-m-d H:i:s')
{
if ($this->created_at === null) {
return null;
}


if ($this->created_at === '0000-00-00 00:00:00') {
// while technically this is not a default value of NULL,
// this seems to be closest in meaning.
return null;
} else {
try {
$dt = new DateTime($this->created_at);
} catch (Exception $x) {
throw new PropelException("Internally stored date/time/timestamp value could not be converted to DateTime: " . var_export($this->created_at, true), $x);
}
}

if ($format === null) {
// Because propel.useDateTimeClass is TRUE, we return a DateTime object.
return $dt;
} elseif (strpos($format, '%') !== false) {
return strftime($format, $dt->format('U'));
} else {
return $dt->format($format);
}
}

1

Решение

Во-первых, исключение выглядит так, как будто оно находит строку Cook в поле.
Я бы var_dump($this->created_at);exit; линия перед new DateTime($this->created_at) исключить эту возможность.

Если вы уверены, что это не так, попробуйте указать формат строки. Вместо new DateTime() использовать:

$dt = date_create_from_format('Y-m-d H:i:s', $this->created_at);

или лучше:

$dt = date_create_from_format($format, $this->created_at);
1

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

Других решений пока нет …

По вопросам рекламы [email protected]