Question

I am using MySQL and php. When I get a date from MySQL it is in the format yyyy-MM-dd. Once I get this string, how can I convert it to format of example Jan 2 2013 in php?

I tried

date("M j Y", mysql_result($recordset, $i, 'date_started'));

using http://www.php.net/manual/en/function.date.php as a reference, but I get some weird date as the output.

Was it helpful?

Solution

The PHP date() method needs a timestamp, so convert your mysql date string to a timestamp first using strtotime():

date("M j Y", strtotime(mysql_result($recordset, $i, 'date_started')));

Or better yet, format your date in your mysql query directly using DATE_FORMAT. You don't really even need PHP to do this.

OTHER TIPS

Using the DateTime wrapper gives you functionality that is worth having. To convert from mysql Format, simple follow this pattern.

$mysqlDate = '2014-01-01';
$myDate = new DateTime($mysqlDate);

echo $myDate->format('M j Y');

you could use date_format in mysql like this

DATE_FORMAT(NOW(),'%b %d %y') //%b is the short name of a month

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top