Подтвердить что ты не робот

Формат mysql timestamp с использованием php

У меня есть столбец с именем postDate, определенный как timestamp. когда я печатаю его напрямую:

echo $result['postDate']; 

Я получаю то, что хранится (например. 2011-03-16 16:48:24) с другой стороны, когда я печатаю его через функцию даты:

echo date('F/j/Y',$result['postDate'])

я получаю December/31/1969

что я делаю неправильно?

большое спасибо

4b9b3361

Ответ 1

попробуйте это.

date('F/j/Y',strtotime($result['postDate']));

поскольку требуется временная метка, а не форматированная дата как второй параметр. или вы также можете попробовать

SELECT UNIX_TIMESTAMP(postDate) as postDateInt from myTable

вместо SELECT postDate from myTable а затем введите это в свой код.

date('F/j/Y',$result['postDateInt']);

Ответ 2

Функция PHP date ищет int time() как второй параметр. Попробуйте использовать strtotime()

echo date('F/j/Y', strtotime($result['postDate']) );

Ответ 3

Почему бы не форматировать дату по мере необходимости в запросе MySQL?

SELECT DATE_FORMAT(postDate, '%M/%D/%Y') as date from table

Ответ 4

Функция PHP `date() 'ожидает число для второго параметра - то есть временную метку unix.

Вы можете преобразовать строку даты SQL (или любую другую строку даты) в метку времени в PHP с помощью функции strtotime(). Как минимум два других ответа уже высказали это.

Однако я бы предположил, что вам лучше будет получать дату из вашей базы данных в формате timestamp в формате unix. Вы можете сделать это, запросив используя функцию MySQL UNIX_TIMESTAMP() следующим образом:

SELECT UNIX_TIMESTAMP(mydatefield) AS mydatefield_timestamp FROM mytable

.. очевидно, заменив имена полей и таблиц соответственно.

Затем вы получите дату в формате timestamp в возвращаемом наборе данных в PHP, который вы можете передать непосредственно в функцию date() следующим образом:

echo date('F/j/Y',$result['mydatefield_timestamp']);

Надеюсь, что это поможет.