Reputation: 891
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\n l jS F Y');
Upvotes: 3
Views: 2131
Reputation: 75
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"
Upvotes: 1
Reputation: 876
$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
Upvotes: 1
Reputation: 29168
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\n 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\n l jS F Y');
Output:
5:00pm on Thursday 14th July 2016
Upvotes: 2
Reputation: 154
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
Upvotes: 1
Reputation: 7617
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\n l jS F Y', strtotime($date));
var_dump($date);
// PRODUCES: '5:00pm on Thursday 14th July 2016' (length=33);
Upvotes: 5