Как отформатировать дату от метки времени в PHP?

У меня есть строка базы данных, тип которой является "меткой времени". Это автоматически заполняет каждый раз, когда новая запись была добавлена со временем вставки той записи. Прямо сейчас для одной из записей это содержит значение:

2010-06-19 18:40:51

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

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

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

12/31/1969

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

7
задан James 20 June 2010 в 20:59
поделиться

3 ответа

Используйте функцию strtotime :

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

Для даты из вашего примера 2010-06-19 18:40:51 она вернет:

06/19/2010


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

В операторе 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 столбец имеет текущую метку времени для своего значения по умолчанию, но не обновляется автоматически.

10
ответ дан 6 December 2019 в 21:10
поделиться

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

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

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

2
ответ дан 6 December 2019 в 21:10
поделиться

SELECT UNIX_TIMESTAMP(sql_row_with_timestamp) AS some_much_more_readable_name FROM your_table должно сработать.

0
ответ дан 6 December 2019 в 21:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: