2010-06-20 7 views
3

У меня есть строка базы данных, тип которой - «метка времени». Он автоматически заполняется каждый раз, когда новая запись добавляется со временем вставки этой записи. Сейчас на одной из записей она имеет значение:Как отформатировать дату из timestamp в PHP?

2010-06-19 18:40:51 

Я попытался превратить это в к более удобной для пользователя форме по:

$timeStamp = $row['date']; 
$timeStamp = date("m/d/Y", $timeStamp); 

Но он возвращает это:

12/31/1969 

Я где-то читал, что функцию date можно использовать только на отметках времени unix, возможно, то, что у меня в моей базе данных, не является подходящей меткой времени, и мне нужно сначала преобразовать ее в первую, прежде чем использовать функцию даты на ней (?). Каково решение?

ответ

4

Использование strtotime функции:

$timeStamp = $row['date']; 
$timeStamp = date("m/d/Y", strtotime($timeStamp)); 

На дату из вашего примера 2010-06-19 18:40:51, он вернется:

06/19/2010 


The timestamp обновления поля автоматически, но вы можете отключить это поведение изменив его на DEFAULT CURRENT_TIMESTAMP, иначе он будет автоматически обновляться. Из manual:

В операторе CREATE TABLE заявлении первого столбца TIMESTAMP могут быть объявлены в любой из следующих способов:

С обоими DEFAULT CURRENT_TIMESTAMP и ON UPDATE CURRENT_TIMESTAMP положений, столбец имеет текущую метку времени для значения по умолчанию и автоматически обновляется.

Без предложений DEFAULT или ON UPDATE это то же самое, что DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP.

С предложением DEFAULT CURRENT_TIMESTAMP и предложением ON UPDATE столбец имеет текущую временную метку для значения по умолчанию, но не обновляется автоматически.

+0

Ха, вы избили меня до него. –

+0

@aharon: да, такие вопросы занимают секунды, чтобы ответить :) – Sarfraz

2

strtotime($timeStamp) (строка к времени) - это то, что вы хотите преобразовать в временную метку unix.

Затем вы можете использовать дату на что, так что-то вроде date("m/d/Y", strtotime($timeStamp))

http://php.net/manual/en/function.strtotime.php

0

ВЫБОР UNIX_TIMESTAMP (sql_row_with_timestamp) AS some_much_more_readable_name FROM your_table следует сделать трюк.

Смежные вопросы