/ PHP

Previous Article

Useful PHP date function

Next Article

Here's a useful function that I use a lot for taking a database date and converting it into something human readable.

function dateFormat($dbDate, $newFormat='jS F Y') {
    // split the date into it's component parts
    $year=substr($dbDate, 0,4);
    $month=substr($dbDate, 5,2);
    $day=substr($dbDate, 8,2);
    $hour=substr($dbDate, 11,2);
    $minute=substr($dbDate, 14,2);
    $second=substr($dbDate, 17,2);

    // recompile in the required format
    return date($newFormat, mktime($hour,$minute,$second,$month,$day,$year));
}

Uses

The function can be used in the following way.

echo dateFormat("2010-11-01 18:00:00", "l jS")

returns

Monday 1st

echo dateFormat("2010-11-01 18:00:00")

returns

1st November 2010

Breakdown

Now I'll break the code down

function dateFormat($dbDate, $newFormat='jS F Y') {

This line sets the function name dateFormat. It also sets the parameters used throughout the function $dbDate and $newFormat also included is a default parameter for $newFormat. This is used if you do not pass a parameter when calling the function.

// split the date into it's component parts
$year=substr($dbDate, 0,4);
$month=substr($dbDate, 5,2);
$day=substr($dbDate, 8,2);
$hour=substr($dbDate, 11,2);
$minute=substr($dbDate, 14,2);
$second=substr($dbDate, 17,2);

This splits the passed date into it's component parts so that it can be reformed into the desired format.

// recompile in the required format
return date($newFormat, mktime($hour,$minute,$second,$month,$day,$year));

The final line of the function uses the mktime and date function to reprocess your date into the $newFormat supplied.

I hope you find this function useful, I use it for many sites with great success.

Avatar of Clive Walkden

Clive Walkden

Latest Articles

Linux

Output All Users Cron Jobs

If you want to check all users cron jobs this little command will output them to the command line

Magento 2

Magento 2 admin password history reset

Do you want to clear the password history on your staging test site (not recommended for live)?

Linux

How to see files changed on a certain date

As a sysadmin you often need to see which files have been modified on a certain date.