Ticket #2700: nice_length.diff

File nice_length.diff, 1.8 KB (added by Rob Smith, 17 years ago)

New version of nice_length.diff

  • includes/utils.php

     
    185185
    186186/**
    187187 * Convert a unix timestamp into an day/hour/minute string
     188 * Values are from Google (1 year in seconds and so on).
    188189 *
    189190 * @param int $length time to convert.
    190191 *
    191192 * @return string Translated hour/minute string.
    192193/**/
    193194    function nice_length($length) {
    194         $days  = intVal($length  / (24 * 3600));
    195         $hours = intVal(($length % (24 * 3600)) / 3600);
    196         $mins  = intVal(($length % 3600) / 60);
     195        $years  = intVal( $length / 31556926 );
     196        $length = $length - ( $years * 31556926 );
     197        $months = intVal( $length / 2629743 );
     198        $length = $length - ( $months * 2629743 );
     199        $days   = intVal( $length / 86400);
     200        $length = $length - ( $days * 86400 );
     201        $hours  = intVal( $length / 3600 );
     202        $length = $length - ( $hours * 3600 );
     203        $mins   = intVal( $length / 60 );
     204        $ret = '';
     205        if ($years > 0)
     206            $ret = tn('$1 year', '$1 years', $years);
     207        if ($months > 0)
     208            $ret .= ' '.tn('$1 month', '$1 months', $months);
    197209        if ($days > 0)
    198             $ret = tn('$1 day', '$1 days', $days);
    199         else
    200             $ret = '';
    201         if ($hours > 0) {
    202             if ($ret)
    203                 $ret .= ' ';
    204             $ret .= tn('$1 hr', '$1 hrs', $hours);
    205         }
    206         if ($mins > 0) {
    207             if ($ret)
    208                 $ret .= ' ';
    209             $ret .= tn('$1 min', '$1 mins', $mins);
    210         }
    211         return $ret;
     210            $ret .= ' '.tn('$1 day', '$1 days', $days);
     211        if ($hours > 0)
     212            $ret .= ' '.tn('$1 hr', '$1 hrs', $hours);
     213        if ($mins > 0)
     214            $ret .= ' '.tn('$1 min', '$1 mins', $mins);
     215        return trim($ret);
    212216    }
    213217
    214218