4

我正在以 yyyy/mm/dd 00:00:00 格式从 MySQL 检索日期。我想在 PHP 中将此日期转换为 dd/MMM/yyyy 格式。

4

5 回答 5

13

使用 PHP 的datestrtotime

$formatted = date('d/M/Y', strtotime($date_from_mysql));

或者使用 MySQL 内置的DATE_FORMAT函数:

SELECT DATE_FORMAT(datetime, '%d/%b/%Y') datetime FROM table

或者,您可以混合两种口味:

SELECT UNIX_TIMESTAMP(datetime) timestamp FROM table;

$formatted = date('d/M/Y', $timestamp);

如果您需要在同一页面上获取几种不同的格式,则最后一种方法很方便;比如说,你想分别打印日期和时间,那么你可以只使用 date('d/M/Y', $timestamp) 和 date('H:i', $timestamp) 而不需要任何进一步的转换。

于 2009-12-04T12:03:15.193 回答
5

尽管您特别要求提供 php 解决方案,但您可能也对 MySQL 的date_format()函数感兴趣。

SELECT date_format(dt, '%d/%m/%Y') ...
于 2009-12-04T12:03:26.240 回答
0

您应该看看date()PHP ( docs ) 中的函数。

print date('d/M/Y', $row['tstamp']);

如果您的日期字段是 aDATETIME或,这适用TIMESTAMP。请记住将字段包装在UNIX_TIMESTAMP()文档)中,例如SELECT ..., UNIX_TIMESTAMP(dateField) AS tstamp FROM ...

于 2009-12-04T12:04:04.383 回答
0

您实际上可以让 mySQL 将日期转换为 unix 时间戳

SELECT UNIX_TIMESTAMP(field) as date_field
FROM table

然后你可以将它直接传递给 PHP 的 date() 函数来获得你想要的格式

date('d/M/Y', $row['date_field'])
于 2009-12-04T12:11:06.190 回答
0
$d=date_create('2009-12-04 09:15:00');
echo $d->format('dd/M/yyyy');
于 2009-12-04T12:16:59.110 回答