将datetime从mysql转换为人类可读的字符串

I have a datetime that I get from a mysql table and I would like to display it as a string.It looks like the following and I would like it to look like July 14th 2016 at 5:00 PM.

2016-07-14 17:00:00

I tried formatting like the following, but it didn't work. How do i get it how I want?

    date_format($date, 'g:ia \o
 l jS F Y');

You just have to convert the $date to Timestamp using something like strtotime() perhaps and then pass this as the second argument to PHP's date() function. The First Argument would be the Format for the Date. This below illustrates it....

<?php
    $date   = "2016-07-14 17:00:00";
    $date   =  date('g:ia \o
 l jS F Y', strtotime($date));

    var_dump($date);
    // PRODUCES: '5:00pm on Thursday 14th July 2016'  (length=33);

You can use PHP's date_format, but it expects a date object rather than a string.

date_format ( DateTimeInterface $object , string $format )

Here's an example using the procedural style:

$date_string="2016-07-14 17:00:00";
$date_object=date_create($date_string);
echo date_format($date_object, 'g:ia \o
 l jS F Y');

Here's an example using the object oriented style:

$date_string="2016-07-14 17:00:00";
$date_object=new Datetime($date_string);
echo $date_object->format('g:ia \o
 l jS F Y');

Output:

5:00pm on Thursday 14th July 2016

$date=date_create("2016-07-14 17:00:00");
echo date_format($date,'jS F Y \a\t g:ia');

Output : 14th July 2016 at 5:00pm

Use DateTime

<?php
    $datetime = "2016-07-14 17:00:00";

    $dt = new DateTime($datetime);
    echo $dt->format('F jS Y \a\t g:ia');
?>

Output: July 14th 2016 at 5:00pm

Simple:

$mysqlDate = "2016-07-14 17:00:00";
$formatted = date('F dS Y \a\t H:iA', strtotime($mysqlDate));

Will display: July 14th 2016 at 5:00PM

Edit: i have forgotten to add the "at"