Format and echo datetime string received from MySQL? - php

how would I format a datetime string received from MySQL? For example, when I do
echo $info['start_datetime']
I get 2012-03-18 21:00:00, but I would like to Turn it into Sunday, March 18, 2012. I looked at the php documentation where it showed the different formats, but not specifically when they're retrieved from MySQL.
Thanks everyone!

echo date('l, F d, Y', strtotime($info['start_datetime']));

There are load of ways you can format the date. First change the time into timestamp using strtotime() function.
Check this page to get the list of how to format a date.
The usage is something like this
$time = strtotime($info['start_datetime']);
echo date("l, F d, Y", $time);

Use something like this:
echo ( date( "r", strtotime($info['start_datetime']) ) );
More options here: http://php.net/manual/en/function.date.php

Related

PHP format date is displaying wrong

I'm trying to format a date from a post variable. When you type in: 05-05-2016 it will display as May 5, 2016. But when you type 05-12-2016, it will display as December 5, 2016. The format is below:
echo date("F d, Y", strtotime($wedding_date));
The format I would like is: Month Day, Year
echo date_format(date_create_from_format('m-d-Y', $wedding_date), 'F d, Y');
and adjust 'm-d-Y' to your needs (or input).
Obviously there is an ambiguity in the input.
So strtotime does not know what input format you delivered.
You may consider using DateTime instead.
$out = DateTime::createFromFormat('d-m-Y', $weddingDay);
echo $out->format('F d, Y');

Change date format from dashes to nicer fomrat

I have dates that are being stored in the database like this:
08-11-2013
(That's Day, Month year BTW) Is there a way (without changing the database entries) to output this on a page like this instead...
8th November, 2013
Cheers.
FYI, this would be a lot easier if you stored your dates in MySQL standard Date format.
Use MySQL's DATE_FORMAT() with STR_TO_DATE()
SELECT DATE_FORMAT(STR_TO_DATE(datecol, "%d-%m-%Y"), "%D %M, %Y")
But if you have to do it with PHP you can use DateTime::createFromFormat()
$dt = DateTime::createFromFormat('08-11-2013', "d-m-Y");
echo $dt->format('jS M, Y');
While other's answers are valid, this will output the date in the exact format you asked for in your question.
$date = '08-11-2013';
$prettydate = date('jS F, Y', strtotime($date));
echo $prettydate;
In PHP try
<?php
$olddate = '2012-07-18';
$date = new DateTime($olddate);
echo $date->format('jS F, Y');
?>
Also try to read Convert date format yyyy-mm-dd => dd-mm-yyyy
Enjoy coding! :D

Convert date to a different date format

All,
I have a date format in the following output that I get from Tumblr:
2013-02-25 18:00:25 GMT
I'd like to convert this to a date format I want using the date function. I tried the following:
$date = date("F d, Y",$tumblr_posts->date);
echo $date;
When I did this, the output was "January 01, 1970" which is obviously not right. Any ideas on how to fix this?
Thanks!
You need to use the strtotime function like this.
$date = date("F d, Y", strtotime($tumblr_posts->date));
To find how to parse your date use the PHP date function reference.

How to format date yy-mm-dd in PHP

I have dates currently in this format: yy-mm-dd (e.g. 2011-11-18)
I want them in this format: Friday 18 November 2011
I've tried reading through the PHP documentation manual, but I can't see how to manage dates in the format that I have. If the date needs to be in a different order I can arrange that, but I'm a bit stuck at the meoment.
Any help would be much appreciated.
Use PHP5s new date classes. Much cleaner:
$date = DateTime::createFromFormat('Y-m-d', '2011-11-18');
echo $date->format('l d F Y');
date('l j F Y', strtotime($date));
Just use starttime to change the the dates in many formats using this link.
echo date('l d F Y');
gives you the date format you want.
This was all in the manual you yourself linked.
just use strtotime to get back a timestamp and then use date() to format that:
$date = '2011-11-18'; // your date
$timestamp = strtotime($date); // convert to a timestamp
$new_date = date('l j F Y',$timestamp) // format timestamp
echo $new_date;

How to get AM/PM from a datetime in PHP [duplicate]

This question already has answers here:
Convert from MySQL datetime to another format with PHP
(18 answers)
Closed 2 years ago.
I have a date time in a variable. My format is 08/04/2010 22:15:00. I want to display this like 10.15 PM. How to do this in PHP?
You need to convert it to a UNIX timestamp (using strtotime) and then back into the format you require using the date function.
For example:
$currentDateTime = '08/04/2010 22:15:00';
$newDateTime = date('h:i A', strtotime($currentDateTime));
$dateString = '08/04/2010 22:15:00';
$dateObject = new DateTime($dateString);
echo $dateObject->format('h:i A');
Use strtotime() to make the date a UNIX timestamp.
For output, check out the various options of date().
$timestamp = strtotime("08/04/2010 22:15:00");
date("h.i A", $timestamp);
<?php
$dateTime = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
echo $dateTime->format("d/m/y H:i A");
?>
You can use this to display the date like this
22/06/15 10:46 AM
Like this:
$date = '08/04/2010 22:15:00';
echo date('h:i A', strtotime($date));
Result:
10:15 PM
More Info:
date
strtotime
for flexibility with different formats, use:
$dt = DateTime::createFromFormat('m/d/Y H:i:s', '08/04/2010 22:15:00');
echo $dt->format('g:i A')
Check the php manual for additional format options.
PHP Code:
date_default_timezone_set('Asia/Kolkata');
$currentDateTime=date('m/d/Y H:i:s');
$newDateTime = date('h:i A', strtotime($currentDateTime));
echo $newDateTime;
Output: 05:03 PM
$currentDateTime = $row['date'];
echo $newDateTime = date('l jS \of F Y h:i:s A', strtotime($currentDateTime));
Perfect answer for AM/PM live time solution
<?php echo date('h:i A', time())?>
Just simply right A
{{ date('h:i A', strtotime($varname->created_at))}}
For (PHP >= 5.2.0):
You can use DateTime class. However you might need to change your date format. Didn't try yours.
The following date format will work for sure: YYYY-MM-DD HH-MM-SS
$date = new DateTime("2010-04-08 22:15:00");
echo $date->format("g"). '.' .$date->format("i"). ' ' .$date->format("A");
//output
//10.15 PM
However, in my opinion, using . as a separator for 10.15 is not recommended because your users might be confused either this is a decimal number or time format. The most common way is to use 10:15 PM
It is quite easy. Assuming you have a field(dateposted) with the type "timestamp" in your database table already queried and you want to display it, have it formated and also have the AM/PM, all you need do is shown below.
<?php
echo date("F j, Y h:m:s A" ,strtotime($row_rshearing['dateposted']));
?>
Note: Your OUTPUT should look some what like this depending on the date posted
May 21, 2014 03:05:27 PM

Categories