Конвертировать datetime в текст не показывает результат
у Меня есть дата в этом формате: Quarta, 21 Maio, 2014
.
", Чтобы сохранить эту дату в базе данных, я обрати-ла - datetime
следующим образом:
$f['data'] = $_POST['data'];
$data = DateTime::createFromFormat('l, j F, Y', $f['data']);
$data = $data->format('Y-m-d H:i:s');
После того, как я вставляю переменную $data
в моей таблице, и это работает правильно. Дата сохраняется как datetime
в базе данных.
, Но теперь я хочу, чтобы показать дату, и я хочу, чтобы снова превратить его в формате Quarta, 21 Maio, 2014
.
Так что я сделать мой select
, а затем снова использовать DateTime::createFormat
для преобразовать дату datetime
для форматирования текста, которые планирую:
$lerNoticia = $pdo->prepare("SELECT * FROM noticias WHERE");
$lerNoticia->execute();
while ($lerNoticiaResult = $lerNoticia->fetch(PDO::FETCH_ASSOC))
{
$data = DateTime::createFromFormat('l, j F, Y', $lerNoticiaResult['data']);
..... //tenho aqui mais echos a mostrar o titulo da noticia, etc
echo '<span class="data">'.$data.'</span>';
}
проблема В том, что дата не появится, что я могу делать неправильно?
3 answers
Вам нужно сделать обратный путь. Для хранения, вы создали новый объект DateTime, отформатированный в String послал на базу. База возвращает Строку, если тип datetime (думаю, что это), и необходимо создать новый объект из этого формата:
$data = DateTime::createFromFormat('Y-m-d H:i:s', $lerNoticiaResult['data']);
), А затем отформатировать вывод в String:
$data = $data->format('l, j F, Y');
Лично я не использую эту класса, то ответ может быть не очень точным, но логика такая.
У Меня были некоторые проблемы, чтобы сохранить даты Datetime Doctrine, решил следующим образом:
static function strToDatetime($strDate)
{
$strDate = str_replace('/', '-', $strDate);
$datetime = new \DateTime(date('Y-m-d', strtotime($strDate)));
$datetime->format('Y-m-d');
return $datetime;
}
Функция принимает дату в виде текста;
Использовал str_replace('/', '-', $strDate);
потому что моя дата виноградник -
формы вместо штрих-кодов (ex.: 10-05-1996
);
, То функция создает объект DateTime с датой на вопрос и возвращает этот объект.
Я делаю так:
<?php echo date('d-m-Y H:i:s', strtotime($datadobanco) ); ?>
Первый параметр, вы должны использовать формат соответствии с этим ссылается на:
http://www.php.net/manual/pt_BR/function.date.php
, Стоит