在php中使用mysql数据库获取格式化日期


Get formated date in php using mysql database

我想从mysql数据库中获得php格式的日期,如2013年3月21日11:21AM

可以使用MySQL的内置函数DATE_FORMAT()

SELECT DATE_FORMAT(NOW(), '%D %M %Y %h:%i%p')
    <
  • SQLFiddle演示/gh>
  • DATE_FORMAT ()

输出
╔═════════════════════════╗
║     FORMATTED_DATE      ║
╠═════════════════════════╣
║ 22nd March 2013 06:07AM ║
╚═════════════════════════╝

可以使用DATE_FORMAT MySQL函数

DATE_FORMAT(NOW(),'DATEFORMATE') // DATEFORMATE can be %b %d %Y %h:%i %p

STR_TO_DATE('$date', 'DATEFORMATE')

如何在查询

SELECT STR_TO_DATE('YOUR DATE FIELD','DATEFORMAT') FROM table;
SELECT DATE_FORMAT(NOW(),'DATEFORMAT') FROM table;

DATEFORMATE Options

为什么不使用MySQL的DATE_FORMAT?

对于您的示例,将此添加到您的MySQL查询:

DATE_FORMAT(my_date, '%e %M %Y %h:%i %p')

使用DATE_FORMAT()

SELECT * FROM table DATA_FORMAT(NOW(), '%D %M %Y %h:%i%p')

DATE_FORMAT教程

您的数据库列采用什么格式?如果是UNIX时间戳,只需将其输入date即可。如果是日期列(格式为'YYYY-MM-DD'或'YYYY-MM-DD HH:MM:SS'),将其输入strtotime,然后输入date

那么,假设它是一个日期列,你会想这样做:

$column_value = "2013-03-01 00:00:00";    // Get this from your database however you like
$formatted_date = date("jS F Y H:i A", strtotime($column_value));

关于如何使用date进行格式化的文档在PHP文档中

试试这个:

$date   = date from databse // some thing like 2013-03-22 11:38:00
$dt     = new DateTime($date);
echo $dt->format('jS  F Y g:ia');

输出:22nd March 2013 11:38am

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