Может ли быть улучшена моя функция разницы во времени PHP?

Ниже моя функция, которая возьмет отметку времени и сообщит вам время, прошедшее с этого момента в формате23 дня 3 часа 4 минуты 6 секунд

Основная проблема на моем сайте, я использую MySQLs DATETIME вместо TIMESTAMP, поэтому, чтобы использовать эту функцию, я должен преобразовать дату / время из mysql в метку времени, а затем запустить ее через мою функцию.

Поэтому мне интересно, есть ли лучший способ сделать это, на некоторых страницах, где у меня есть 100 результатов mysql, PHP должен конвертировать 100 дат в метки времени, а затем запустить их на 100 из них.

Мне просто интересно, есть ли лучший метод производительности, и, пожалуйста, нерекомендую все фреймворки PHP (Zend и т. д.)

Ценю любые советы / помощь

function duration($timestamp) {
    $years = floor($timestamp / (60 * 60 * 24 * 365));
    $timestamp %= 60 * 60 * 24 * 365;
    $weeks = floor($timestamp / (60 * 60 * 24 * 7));
    $timestamp %= 60 * 60 * 24 * 7;
    $days = floor($timestamp / (60 * 60 * 24));
    $timestamp %= 60 * 60 * 24;
    $hrs = floor($timestamp / (60 * 60));
    $timestamp %= 60 * 60;
    $mins = floor($timestamp / 60);
    $secs = $timestamp % 60;
    $str = "";
    if ($years == 1) {
        $str .= "{$years} year ";
    }elseif ($years > 1) {
        $str .= "{$years} yearss ";
    }
    if ($weeks == 1) {
        $str .= "{$weeks} week ";
    }elseif ($weeks > 1) {
        $str .= "{$weeks} weeks ";
    }   
    if ($days == 1) {
        $str .= "{$days} day ";
    }elseif ($days > 1) {
        $str .= "{$days} days ";
    }
    if ($hrs == 1) {
        $str .= "{$hrs} hour ";
    }elseif ($hrs > 1) {
        $str .= "{$hrs} hours ";
    }
    if ($mins == 1) {
        $str .= "{$mins} minute ";
    }elseif ($mins > 1) {
        $str .= "{$mins} minutes ";
    }
    if ($mins < 1 && $secs >= 1) {
        $str .= "{$secs} seconds ";
    }
    return $str;
}

Ответы на вопрос(1)

Ваш ответ на вопрос