2013-04-07 73 views
-2

我一直在学习使用PDO与PHP的基础知识,我的查询工作。 这是代码:Strtotime和PHP - 格式化PDO查询?

<?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年6月6日12:00 :00(它作为DATETIME存储在数据库中)

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

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

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

+0

请接受你选择的答案! – michi 2013-04-08 15:11:10

回答

3

无论是在PHP中使用的日期格式的功能或使用mysql DATE_FORMAT功能是这样的:

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

这将在现场恰好返回6th April 2013, 12:00pmmod_date

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错误的正确方法