可能遗漏了一些简单的事情:
<?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()需要一个时间戳。
谢谢......我确定这很明显,但我的思绪一片空白
答案 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:使用date
和strtotime
,它们用于时间戳(重新定义为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']));