在PHP中,如何格式化从数据库收集的日期?

I have been trying to use date_format, however as far as I know, it only takes timestamps and then it formats the date in whatever way you want to display it.

My issue is the following, the dates in my database are with the following format:

 2012-05-14 // (Y-m-d)

and I want to display them as: June 14th, 2012 or the closest format to that.

Is there any built-in date in PHP to make such transformation? Thanks!

Do the transformation in the database, so you don't do multiple round-trips through various string/binary formats each time:

SELECT DATE_FORMAT(yourdatefield, '%M %D, %Y')

relevant docs here: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

Anything else will require the following transformations sequence:

mysql native -> mysql string -> php string -> php timestamp -> php string
v.s.
mysql native -> mysql string -> php string
<?php echo date('F jS, Y', strtotime('2012-06-14')); ?>

http://php.net/manual/en/function.date.php

echo date("F jS, Y", strtotime($mysql_row_date_goes_here));

You can use strtotime() to convert date into time and then use date(). Or you can tell your database how to format date with proper SQL.

You can also use createFromFormat:

date = DateTime::createFromFormat('Y-m-d', $yourTimeString);
echo $date->format('F jS, Y');

You could try something like this:

$date_string = 2012-05-14;
$formatted_date = date('F jS, Y', strtotime($date_string));
echo $formatted_date;