UK Date Mysql Convert Function

Just a quick float past today to share a function have i written and use daily that will convert mysql date format into UK formatted equivilent dates.

For mysql to work correctly on date searches etc. mysql stores dates in the ‘YYYY-MM-DD’ format

In the UK we like to read as ‘DD/MM/YYYY’ just to be different.
In the USA the dates are displayed as ‘MM/DD/YYYY’ I am lead to believe by my recent visit.

I am going to share my 2 functions for date conversion today that will take an UK inputted date and convert to a mysql date, and then the second function takes the date and converts it back into a UK formatted Date. Feel free to use these functions whenever you wish.

function changedate($date) {
   $chdate = explode('/',$date);
   $changedate = $chdate[2].'-'.$chdate[1].'-'.$chdate[0];
   return $changedate;

Just a quick run through:
we create an array called $chdate and we explode the result of the $date input using / (if you have used a – just change to that)..
That should give us an array of 3 strings. We then put that array back together in the correct mysql order for storing in the database.

Now to convert it back to a UK date profile i have reversed the function:

function ukdate($date) {
   $chukdate = explode('-',$date);
   $ukchdate = $chukdate[2].'/'.$chukdate[1].'/'.$chukdate[0];
   return $ukchdate;

It is nice and flexible and you can do a USA conversion as below:

function usadate($date) {
   $chusadate = explode('-',$date);
   $usachdate = $chusadate[1].'/'.$chusadate[2].'/'.$chusadate[0];
   return $usachdate;

To call the function on a sql date just do :

echo ukdate($row[date]);

So if you save these functions in your function file for future use and enjoy…

Author Edit
These 2 functions are really useful and i use them alot. However i have been developing a project that
uses timestamp in its database instead of date. After a few hours research and a bit of tickering i discovered
php actually has a built in function that you can pretty much manipulate into any form you like.

$sqldate = '2012-12-25';
$newdate = date('d/m/Y',strtotime($sqldate));
echo $newdate;

Will give you a UK based date (25/12/2012 in this case). You can use this with many of the date fetaures in pretty much any order.
You can also use this with a mysql timestamp as well. If you wish to add the time use :

$sqltimestamp = '2012-12-25 10:32:23';
$newdate = date('d/m/Y',strtotime($sqltimestamp));
$newtimestamp = date('d/m/Y H:i:s',strtotime($sqltimestamp));
echo $newdate.'
echo $newtimestamp;

Will give you:
25/12/2013 10:32:23

I hope this also helps.

Copyright 2007 - 2024 southcoastweb is a brand of DSM Design.