У меня есть таблица DB DB с столбцом с именем "timestamp"
, тип timestamp
и атрибут on update CURRENT_TIMESTAMP
и значение по умолчанию CURRENT_TIMESTAMP
.Как преобразовать MySQL TIMESTAMP в дату времени в PHP
Если я добавлю запись в таблицу, указав другие значения, но не временную метку, то метка времени автоматически добавляется как 2016-12-28 17:02:26
.
В PHP я запросить таблицу с помощью следующего запроса
SELECT * FROM history WHERE user_id = 9 ORDER BY timestamp ASC
Результат запроса сохраняется в $rows
и я использую foreach
, чтобы создать массив с некоторыми из других значений, отформатированные. Я пытаюсь отформатировать временную метку на дату 24-часовой даты в Великобритании: dd/mm/yy, HH:MM:SS
.
Я попробовал оба date()
и strftime()
функции следующим образом:
$formatted_datetime = strftime("%d %m %y %H %M %S", $row["timestamp"]);
$formatted_datetime = date("d/m/y, H:i:s", $row["timestamp"]);
Оба эти результата в следующем уведомлении и дата время выводимого некорректно, как 01 01 70 00 33 36
:
Примечание: A неверно сформированное числовое значение, встречающееся в /home/ubuntu/workspace/pset7/public/history.php в строке 20
Я новичок в PHP и MySQL, и до сих пор ни один из других вопросов или документации, которые я видел, не успешно справился с выполнением этого преобразования. Я не понимаю, почему strftime()
не работает, и как это сделать правильно?
Возможный дубликат [Преобразование MySQL временной метки в фактическую дату и время?] (Http://stackoverflow.com/questions/5547252/convert-mysql-timestamp-into-actual-date-and- время) – Tiger
Sidenote: я бы не использовал 'TIMESTAMP' из-за его ограничений: *« Тип данных TIMESTAMP используется для значений, содержащих как дату, так и время. TIMESTAMP имеет диапазон «1970-01-01 00:00» : 01 'UTC to **' 2038-01-19 03:14:07 '** UTC. * * Https://dev.mysql.com/doc/refman/5.5/en/datetime.html использовать 'DATETIME' * «Тип DATETIME используется для значений, содержащих как дату, так и время. MySQL извлекает и отображает значения DATETIME в формате« YYYY-MM-DD HH: MM: SS ». Поддерживаемый диапазон:« 1000-01-01 00: 00:00 'до **' 9999-12-31 23:59:59 '. ** "* –
@Tiger Выбранное решение там похоже ... как много. Получил ли я другой тип для столбца timestamp на моем столе? – Toby