MySQL表中的日期格式

时间:2012-08-06 19:33:47

标签: php mysql date

我在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>

P.S。日期格式的其他组合给我语法错误。

非常感谢任何建议,

7 个答案:

答案 0 :(得分:3)

你想要

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

strtotime将您的日期字符串转换为unix-timestamp

然后,date函数根据字符串正确格式化。

答案 1 :(得分:0)

您希望date()更改格式。

答案 2 :(得分:0)

您应该使用format function

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

感谢@Erty

答案 3 :(得分:0)

在MS-SQL和Oracle中有一些名为TO_CHAR的方法,您可以在其中传递您希望日期输入的格式,因此在获取数据时您可以更改它

答案 4 :(得分:0)

http://php.net/manual/en/datetime.format.php

 <td><div><a><? echo new DateTime($row['date'])->format('Y-m-d'); ; ?></a></div></td>

答案 5 :(得分:0)

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

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

当然,正如其他人所建议的那样,你可能会将其缩短,但我更喜欢“漫长的道路”来提高可读性,并帮助你在将来回顾旧代码时加快速度。 : - )

答案 6 :(得分:0)

每个人都在建议你用php做这件事,我总是用mySQL自己的日期函数来做这件事:

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

DATE_FORMAT