форматирование даты php с MySQL ПОКАЗАТЬ СТАТУС СТАТУС - PullRequest
1 голос
/ 31 марта 2010

, вероятно, отсутствует что-то простое:

<?php
$con=mysql_connect('localhost','xxx','xxx');

$db=mysql_select_db('xxx');

$sql = mysql_query("SHOW TABLE STATUS WHERE `name`=\"my_table\"");

$foo=mysql_fetch_array($sql);

return $foo['Update_time'];

// returns 2010-03-31 16:51:06
?>

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

date('l jS F Y @ H:i:s', $foo['Update_time']);

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

Четверг, 1 января 1970 г. @ 01: 33: 30

предположительно, поскольку date () ожидает отметку времени.

спасибо ... я уверен, что это очень очевидно, но мои мысли опустели

Ответы [ 3 ]

3 голосов
/ 31 марта 2010

Это должно работать:

date('l jS F Y @ H:i:s', strtotime($foo['Update_time']));

strtotime () возьмет строку даты и превратит ее в метку времени, которую затем можно использовать с date().

3 голосов
/ 31 марта 2010

Функция date ожидает в качестве второго параметра UNIX Timestamp , а не строку, содержащую дату.

Это означает, что вы должны преобразовать эту строку во временную метку - что можно сделать с помощью функции strtotime:

$ts = strtotime($foo['Update_time']);
echo date('l jS F Y @ H:i:s', $ts);


Примечание 1: формат YYYY-MM-DD HH-MM-SS хорошо понимается как strtotime; что часто полезно при работе с датами из MySQL.

Примечание 2: Используя date и strtotime, которые работают с метками времени (представлены как 32-битные целые числа, считая количество секунд с 1970-01-01) , вы будете ограничены 1970 и 2038 годы; если вам нужно работать с датами за пределами этого диапазона, вам придется использовать DateTime класс .

0 голосов
/ 31 марта 2010

Вам необходимо использовать strtotime функцию:

date('l jS F Y @ H:i:s', strtotime($foo['Update_time']));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...