2012-08-06 170 views
1

我在MySQL表中的下列两个名称:日期格式

message是键入text

date是键入datetime

<?php 
while($row=mysql_fetch_array($result)){ 
?> 
<tr> 
    <td><div><a><? echo $row['message'] ?></a></div></td> 
    <td><div><a><? echo $row['date']; ?></a></div></td> 
</tr> 
<?php 
} 
?> 

上表的输出显示日期这种格式2012-08-05 17:43:57

如何以这种格式打印日期2012-08-05(没有时间)?

我不能在MySQl中更改类型的日期时间(在不同格式的不同页面中需要它)。

我试过以下,但它并不能帮助(没有印刷在所有)

<td><div><a><? echo $rows['date'](“Y-m-d”); ?></a></div></td> 

附:日期格式的其他组合给我语法错误。

任何建议将不胜感激,

回答

3

你想

<?php echo date('Y-m-d', strtotime($row['date'])); ?> 

strtotime您datestring转换成UNIX时间戳

届时,date函数格式得当根据字符串。

+0

感谢Erty,这是一个非常好的解决方案。 – blsn 2012-08-06 20:03:54

0

您想要date()更改格式。

+0

我不希望日期更改时间格式,我只需要日期(Y-m-d)的回显,而无需时间。 – blsn 2012-08-06 19:38:33

+0

这是相同的功能。阅读@Erty的答案。它有一个更好的解释。 – Biotox 2012-08-06 19:40:15

0

您应该使用format function

echo new DateTime($row['date'])->format('Y-m-d'); 

修订感谢@Erty

+0

您是否需要首先实例化DateTime对象,或者是自动完成的? – 2012-08-06 19:39:03

+0

你说得对@Erty。它已经很长一段时间没有PHP对我:( – Diego 2012-08-06 19:39:54

+0

哈哈没问题,只是帮助。不知道如果你编辑的代码作品要么...... – 2012-08-06 19:40:22

0

有一种叫做TO_CHAR方法,MS-SQL和Oracle中,你可以通过你希望你的日期格式,所以同时获取数据,你可以改变它

0

您首先需要将其转换为日期:

$tmpdate = strtotime($row['date']); 
$date = date('Y-M-d', $tmpdate); 
echo $date; 

当然你可能短下来,正如其他人的建议,但我更喜欢“在很长的路要走”,以提高可读性,并帮助你加快速度更快当您回顾并在将来查看旧代码时。 :-)

+0

谢谢,但我收到语法错误 注意:使用未定义的常量日期 - 在128行C:\ xampp \ htdocs \ MySQLprtnr \ getlisting.php中假定'date' – blsn 2012-08-06 19:51:26

0

每一个其他人的建议你用PHP做,我总是这样做MySQL自己的最新功能:

SELECT ... DATE_FORMAT(Date_Field ,'%Y-%e-%c') ... 

DATE_FORMAT