在php中从数据库显示正确的日期时间

在php中从数据库显示正确的日期时间,php,mysql,datetime,Php,Mysql,Datetime,我对日期时间表示有问题。 我想在一个列表中显示进入db的条目的时间,旁边有条目的标题。 但目前,每当我尝试正确设置时间格式时,代码只显示一个条目,而不是所有条目 <?php $result = mysql_query("SELECT * FROM posts"); while ($row = mysql_fetch_array($result)){ echo "<li>{$row["date"]}". "&nbsp; &nb

我对日期时间表示有问题。 我想在一个列表中显示进入db的条目的时间,旁边有条目的标题。 但目前,每当我尝试正确设置时间格式时,代码只显示一个条目,而不是所有条目

<?php
    $result = mysql_query("SELECT * FROM posts");

    while ($row = mysql_fetch_array($result)){  
        echo "<li>{$row["date"]}". "&nbsp; &nbsp; &nbsp; &nbsp;". $row["title"]. "</li>";
    }
?>
但是当我把日期格式化成这样的时候

<?php
    $result = mysql_query("SELECT * FROM posts");

    $new_date = mysql_fetch_row($result);
    $date = date_create($new_date[3]);

    while ($row = mysql_fetch_array($result)){  
        echo "<li>". date_format($date, 'Y-m-d H:i:s'). "&nbsp; &nbsp; &nbsp; &nbsp;". $row["title"]. "</li>";
    }
?>


我只从数据库中获取最后一行。

通过在循环外部调用
mysql\u fetch\u row()
将记录集的第一条记录弹出堆栈,只留下第二条记录。只需在循环中创建DateTime()对象

<?php
    $result = mysql_query("SELECT * FROM posts");

    while ($row = mysql_fetch_array($result)){  
        $date = date_create($row[3]);
        echo "<li>". date_format($date, 'Y-m-d H:i:s'). "&nbsp; &nbsp; &nbsp; &nbsp;". $row["title"]. "</li>";
    }
?>

我也不建议在访问相同数据时混合使用数字键和关联键。坚持一个。我建议使用关联数组,因为读者可以更清楚地了解正在发生的事情

<?php
    $result = mysql_query("SELECT * FROM posts");

    while ($row = mysql_fetch_assoc($result)){  
        $date = date_create($row['date_col']);
        echo "<li>". date_format($date, 'Y-m-d H:i:s'). "&nbsp; &nbsp; &nbsp; &nbsp;". $row["title"]. "</li>";
    }
?>


。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO,.

尝试直接在循环中使用
date()
格式化,这样就不需要
$date
var

echo "<li>".date('Y-m-d H:i:s', strtotime($row["date"]))."&nbsp; &nbsp; &nbsp; &nbsp;". $row["title"]. "</li>";
圈内


另外,
mysql.*
已被弃用以获取更多的follow@john Conde-answer。

不是对您问题的回答,而是查看。你看到那个红色的大盒子了吗?如果您正在编写新的PHP代码,您应该注意它所说的内容。简言之,请改用
mysqli
PDO
函数。
echo "<li>".date('Y-m-d H:i:s', strtotime($row["date"]))."&nbsp; &nbsp; &nbsp; &nbsp;". $row["title"]. "</li>";
 $date = date_create($new_date[3]);