使用PHP以人类可读的格式显示MySQL日期时间?

3

我正在使用以下代码将数据保存到 MySQL 数据库表中:

$query = mysql_query("INSERT INTO test SET postit='$postit',postdate=NOW()");

然后我尝试使用以下方式显示它:

echo "<li>" . date("D, d M y H:i:s O",$row['timestamp']) . " - " . $row['postit'] . "</li>";

它在数据库中保存了正确的时间,但是呈现的结果是:

Thu, 01 Jan 70 01:00:00 +0100

有人指出这种情况很愚蠢吗?


$row['timestamp'] 输出什么? - Indranil
来自数据库的now()函数返回值。 - Alphatester77
2个回答

10

PHP的date()函数使用Unix时间戳作为函数的第二个变量。你传递给该函数的是MySQL时间戳。尝试使用:

echo date("D, d M y H:i:s O",strtotime($row['timestamp']));

是的,在MySQL中,NOW()是一个实际的日期,而不是时间戳。你很敏锐。 - Nick Rolando

2
我常常使用这个函数来实现该目的:
function parse_sql_timestamp($timestamp, $format = 'd-m-Y')
{
    $date = new DateTime($timestamp);
    return $date->format($format);
}

这样我们甚至可以超越2038年 ;)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接