php日期格式化与MySQL SHOW TABLE STATUS

时间:2010-03-31 18:13:24

标签: php mysql date format

可能遗漏了一些简单的事情:

<?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']);

但这会返回:

1970年1月1日星期四@ 01:33:30

大概是因为date()需要一个时间戳。

谢谢......我确定这很明显,但我的思绪一片空白

3 个答案:

答案 0 :(得分:3)

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:使用datestrtotime,它们用于时间戳(重新定义为32位整数,计算自1970-01-01以来的秒数),您将被限制在1970年至2038年之间的日期;如果您需要使用该范围之外的日期,则必须使用DateTime class

答案 1 :(得分:3)

这应该有效:

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

strtotime()将获取日期字符串并将其转换为时间戳,然后您可以将其与date()一起使用。

答案 2 :(得分:0)

您需要使用strtotime功能:

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