-2

我一直在学习使用 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 分隔符对行进行了回显——这是一种好的做法,还是应该取消注释?

但是,如何在我的数据库中获取拍卖日期字段以将数据显示为:

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

而不是

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

我不确定是使用 date 还是 strtotime 来显示它,并希望帮助我正确格式化日期。

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

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

4

3 回答 3

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

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

于 2013-04-07T13:24:21.863 回答
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

于 2013-04-07T13:30:32.983 回答
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 错误的正确方法

于 2013-04-07T13:37:01.710 回答