Конвертировать 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>';
}

проблема В том, что дата не появится, что я могу делать неправильно?

Author: brasofilo, 2014-05-21

3 answers

Вам нужно сделать обратный путь. Для хранения, вы создали новый объект DateTime, отформатированный в String послал на базу. База возвращает Строку, если тип datetime (думаю, что это), и необходимо создать новый объект из этого формата:

$data = DateTime::createFromFormat('Y-m-d H:i:s', $lerNoticiaResult['data']);

), А затем отформатировать вывод в String:

$data = $data->format('l, j F, Y');

Лично я не использую эту класса, то ответ может быть не очень точным, но логика такая.

 1
Author: Gustavo, 2014-05-21 21:18:43

У Меня были некоторые проблемы, чтобы сохранить даты 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 с датой на вопрос и возвращает этот объект.

 1
Author: Guilherme, 2014-05-21 20:21:56

Я делаю так:

<?php echo date('d-m-Y H:i:s', strtotime($datadobanco) ); ?>

Первый параметр, вы должны использовать формат соответствии с этим ссылается на:
http://www.php.net/manual/pt_BR/function.date.php

, Стоит

 1
Author: Jefferson Silva, 2014-05-22 22:06:20