Strtotime和PHP - 格式化PDO查询?

时间:2013-04-07 13:08:56

标签: php mysql database pdo

我一直在学习使用PDO和PHP的基础知识,我的查询工作正常。 这是代码:

<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
?>



<?php
$hostname = "localhost";
$username = "test";
$password = "test";

try {
    $db = new PDO("mysql:host=$hostname;dbname=goodsdb", $username, $password);

    //echo "Connected to database"; // check for connection

    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);

    $sql = "Select * from items";
    $result = $db->query($sql);
    foreach ($result as $row) {
        //echo $row["goods"]. "<br />";
    }

    $db = null; // close the database connection

}
catch(PDOException $e) {
    echo $e->getMessage();
}
?>
<p>
<?php
echo $row["goods"];
?>
</p>
<p>
<?php
echo $row["auctiondate"];
?>
</p>
</div>
<?php require 'footer.php' ?>

它起作用,到目前为止没有错误。请注意,我已经在foreach之后注释了echo部分,并使用php分隔符回显了行 - 这是一个好的做法,还是应该取消注释?

但是,如何在我的数据库中获取auctiondate字段以显示数据:

2013年4月6日,中午12:00

而不是

2013-06-06 12:00:00(它在数据库中存储为DATETIME)

我不确定是否使用日期或strtotime来显示此内容,并希望获得有关正确格式化日期的帮助。

这个项目是一个简单的网站,用于显示PDO / MySQL中仓库数据库的数据 - 基本上是一个简单的测试站点。

我正在使用PHP 5.4.4,并在OS X 10.8.3 Mountain Lion上使用MAMP,如果这有帮助的话。

3 个答案:

答案 0 :(得分:5)

$mydate = date("jS M Y, g:ia", strtotime($datefrommysql));

有关日期格式的信息,请参阅http://www.php.net/manual/en/function.date.php

答案 1 :(得分:3)

使用php中的日期格式功能或使用mysql date_format函数,如下所示:

Select *,date_format(auctiondate,'%D %M %Y, %h:%i%p' ) as 'mod_date' from items

这将在字段6th April 2013, 12:00pm

中准确返回mod_date

答案 2 :(得分:1)

由于某些原因您的问题被PDO标记(与日期格式无关),我会对您使用PDO的方式进行一些改进

<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');

$hostname = "localhost";
$username = "test";
$password = "test";

$opt = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
$db = new PDO("mysql:host=$hostname;dbname=goodsdb", $username, $password, $opt);

$sql = "Select * from items";
$result = $db->query($sql);
foreach ($result as $row) {
    //echo $row["goods"]. "<br />";
}

这将是处理PDO错误的正确方法