Php MySQL中的日期时间显示

Php MySQL中的日期时间显示,php,mysql,datetime,Php,Mysql,Datetime,我需要你帮我做时间转换。在我的数据库中,我输入了如下注释的日期: Datetime: 2012-05-08 14:44:53 $unix = strtotime($datetime); echo date(F j Y g:iA, $unix); 我怎样才能让它显示接近这个的东西 May 15, 2012 2:44PM 感谢您的时间和耐心。您应该使用MySQLDATE\u FORMAT()函数 参考: 查询示例: SELECT DATE_FORMAT(`date`, '%a %d,

我需要你帮我做时间转换。在我的数据库中,我输入了如下注释的日期:

  Datetime: 2012-05-08 14:44:53
$unix = strtotime($datetime);
echo date(F j Y g:iA, $unix);
我怎样才能让它显示接近这个的东西

  May 15, 2012 2:44PM

感谢您的时间和耐心。

您应该使用MySQL
DATE\u FORMAT()
函数

参考:

查询示例:

SELECT DATE_FORMAT(`date`, '%a %d, %Y %l:%s%p') AS `myDate`;

您需要使用
strotime()
转换为Unix时间戳。然后可以使用
date()
显示所需的确切格式。大概是这样的:

  Datetime: 2012-05-08 14:44:53
$unix = strtotime($datetime);
echo date(F j Y g:iA, $unix);
DATE_FORMAT()是您问题的答案

SELECT DATE_FORMAT(NOW(), '%M %d, %Y %h:%i %p') as FormattedDate;
%M  Month name (January..December)
%d  Day of the month, numeric (00..31)
%Y  Year, numeric, four digits
%h  Hour (01..12)
%i  Minutes, numeric (00..59)
%p  AM or PM

SELECT DATE_FORMAT(NOW(), '%M %d, %Y %h:%i %p') as FormattedDate;
%M  Month name (January..December)
%d  Day of the month, numeric (00..31)
%Y  Year, numeric, four digits
%h  Hour (01..12)
%i  Minutes, numeric (00..59)
%p  AM or PM

我相信最佳实践是将数据检索和数据格式化分开,即不使用SQL语句格式化文本。此外,使用Unix时间戳比使用文本表示容易得多。也许你是对的,但我使用
date\u format()
格式化日期,因为我认为这比在Unix时间戳中转换
datetime
然后格式化要快。我通常以
datetime
格式存储所有日期,因为它是人类可读的<代码>时间戳不是。可能更快,但仍然不明显。我个人认为,坚持最佳编码实践比忽略不计的性能优势更可取,如果它确实存在的话。