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 中更改类型 datetime (在不同格式的不同页面中需要它)。

我尝试了以下方法,但没有帮助(根本不打印)

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

ps 其他日期格式组合给我语法错误。

任何建议将不胜感激,

4

7 回答 7

3

你要

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

strtotime将您的日期字符串转换为 unix 时间戳

然后,日期函数根据字符串对其进行正确格式化。

于 2012-08-06T19:34:58.217 回答
0

您想要date()更改格式。

于 2012-08-06T19:35:50.493 回答
0

您应该使用格式功能

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

更新感谢@Erty

于 2012-08-06T19:36:26.190 回答
0

在 MS-SQL 和 Oracle 中有一种称为 TO_CHAR 方法的方法,您可以在其中传递您想要的日期格式,因此在获取数据时您可以更改它

于 2012-08-06T19:37:41.650 回答
0

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

 <td><div><a><? echo new DateTime($row['date'])->format('Y-m-d'); ; ?></a></div></td>
于 2012-08-06T19:38:11.433 回答
0

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

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

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

于 2012-08-06T19:42:42.033 回答
0

其他人都建议你用 php 来做,我总是用 mySQL 自己的日期函数来做:

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

日期格式

于 2012-08-06T19:46:59.617 回答