kartik\helpers\Enum::timeInterval PHP Method

timeInterval() public static method

Example: ~~~ echo 'Human Friendly: ' . Enum::timeElapsed("2011-08-30 03:11:39"); echo 'Raw Conversion: ' . Enum::timeElapsed("2011-08-30 03:11:39", false); ~~~
public static timeInterval ( integer $interval, string $append = null, boolean $human = true ) : string
$interval integer time interval in seconds
$append string the string to append for the converted elapsed time. Defaults to `' ago'`.
$human boolean if true returns an approximate human friendly output. If set to `false`, will attempt an exact conversion of time intervals.
return string
    public static function timeInterval($interval, $append = null, $human = true)
    {
        static::initI18N();
        $intervals = static::$intervals;
        $elapsed = '';
        if ($append === null) {
            $append = ' ' . Yii::t('kvenum', 'ago');
        }
        if ($human) {
            if ($interval <= 0) {
                $elapsed = Yii::t('kvenum', 'a moment ago');
            } elseif ($interval < 60) {
                $elapsed = Yii::t('kvenum', '{n, plural, one{one second} other{# seconds}}', ['n' => $interval]);
            } elseif ($interval >= 60 && $interval < $intervals['hour']) {
                $interval = floor($interval / $intervals['minute']);
                $elapsed = Yii::t('kvenum', '{n, plural, one{one minute} other{# minutes}}', ['n' => $interval]);
            } elseif ($interval >= $intervals['hour'] && $interval < $intervals['day']) {
                $interval = floor($interval / $intervals['hour']);
                $elapsed = Yii::t('kvenum', '{n, plural, one{one hour} other{# hours}}', ['n' => $interval]);
            } elseif ($interval >= $intervals['day'] && $interval < $intervals['week']) {
                $interval = floor($interval / $intervals['day']);
                $elapsed = Yii::t('kvenum', '{n, plural, one{one day} other{# days}}', ['n' => $interval]);
            } elseif ($interval >= $intervals['week'] && $interval < $intervals['month']) {
                $interval = floor($interval / $intervals['week']);
                $elapsed = Yii::t('kvenum', '{n, plural, one{one week} other{# weeks}}', ['n' => $interval]);
            } elseif ($interval >= $intervals['month'] && $interval < $intervals['year']) {
                $interval = floor($interval / $intervals['month']);
                $elapsed = Yii::t('kvenum', '{n, plural, one{one month} other{# months}}', ['n' => $interval]);
            } elseif ($interval >= $intervals['year']) {
                $interval = floor($interval / $intervals['year']);
                $elapsed = Yii::t('kvenum', '{n, plural, one{one year} other{# years}}', ['n' => $interval]);
            }
        } else {
            $elapsed = static::time2String($interval, $intervals);
        }
        return $elapsed . $append;
    }

Usage Example

Esempio n. 1
0
 /**
  * Helper to convert expiry time left from now
  *
  * @param string $type the expiry time type
  * @param int    $seconds the time left in seconds
  *
  * @return string
  */
 public static function timeLeft($type, $seconds)
 {
     if ($seconds > 0) {
         return Yii::t('user', 'The {type} link will expire in {time} from now.', ['type' => $type, 'time' => Enum::timeInterval($seconds, '')]);
     }
     return '';
 }