LAST EDIT: Monday, May 5th, 2008

PHP MySQL Date Function

A PHP function to convert MySQL dates into human readable format.

function mysql2date

function mysql2date($dateformatstring, $mysqlstring, $translate = true) {
    global $month, $weekday, $month_abbrev, $weekday_abbrev;
    $m = $mysqlstring;
    if ( empty($m) ) {
        return false;
    }
    $i = mktime(substr($m,11,2),substr($m,14,2),substr($m,17,2),substr($m,5,2),substr($m,8,2),substr($m,0,4));
    if ( -1 == $i || false == $i )
        $i = 0;
    if ( !empty($month) && !empty($weekday) && $translate ) {
        $datemonth = $month[date('m', $i)];
        $datemonth_abbrev = $month_abbrev[$datemonth];
        $dateweekday = $weekday[date('w', $i)];
        $dateweekday_abbrev = $weekday_abbrev[$dateweekday];
        $dateformatstring = ' '.$dateformatstring;
        $dateformatstring = preg_replace("/([^])D/", "1".backslashit($dateweekday_abbrev), $dateformatstring);
        $dateformatstring = preg_replace("/([^])F/", "1".backslashit($datemonth), $dateformatstring);
        $dateformatstring = preg_replace("/([^])l/", "1".backslashit($dateweekday), $dateformatstring);
        $dateformatstring = preg_replace("/([^])M/", "1".backslashit($datemonth_abbrev), $dateformatstring);
        $dateformatstring = substr($dateformatstring, 1, strlen($dateformatstring)-1);
    }
    $j = @date($dateformatstring, $i);
    return $j;
}

Example usage

/**
 * Set timestamp to play with
 */
$mysqlstring = '1975-01-24 09:50:00';
/**
 * Prints: Friday, January 24th, 1975
 */
echo mysql2date('l, F jS, Y', $mysqlstring);
/**
 * Prints: Jan 24, 1975
 */
echo mysql2date('M j, Y', $mysqlstring);
/**
 * Prints: Jan 24th, 1975
 */
echo mysql2date('M jS, Y', $mysqlstring);
/**
 * Prints: Fri, Jan 24th, 1975
 */
echo mysql2date('D, M jS, Y', $mysqlstring);
/**
 * Prints: Fri, Jan 24th, 1975 - 9:50 am
 */
echo mysql2date('D, M jS, Y - g:i a', $mysqlstring);
/**
 * Prints: Friday, January 24th, 1975 at 9:50 am
 */
echo mysql2date('l, F jS, Y at g:i a', $mysqlstring);

External links

Tagged with: code, mysql, php, webdevelopment


Add Your Comment

Use the form below to add your comment. Markdown syntax is available. Note, comments are moderated by me for spam filtering. Alternatively, feel free to contact me privately.