Scalr\System\Zmq\Cron\Task\ServerStatusManager::parseIntervals PHP Метод

parseIntervals() публичный Метод

Normalizes intervals representations
public parseIntervals ( array $intervals ) : integer
$intervals array Intervals
Результат integer Returns intervals representations strings max length
    public function parseIntervals(array $intervals)
    {
        $maxLength = 0;
        foreach ($intervals as $attempt => $interval) {
            preg_match_all('/(?:(?P<days>\\d+)d)|(?:(?P<hours>\\d+)h)|(?:(?P<minutes>\\d+)m)|(?:(?P<seconds>\\d+)s)/', $interval, $matches);
            $seconds = array_sum($matches['seconds']);
            $minutes = (int) floor($seconds / 60);
            $seconds = $seconds % 60;
            $minutes += array_sum($matches['minutes']);
            $hours = (int) floor($minutes / 60);
            $minutes = $minutes % 60;
            $hours += array_sum($matches['hours']);
            $days = (int) floor($hours / 24);
            $hours = $hours % 24;
            $days += array_sum($matches['days']);
            $interval = "{$days} {$hours}:{$minutes}:{$seconds}";
            $length = strlen($interval);
            if ($length > $maxLength) {
                $maxLength = $length;
            }
            $this->attemptConfig[$attempt] = $interval;
        }
        return $maxLength;
    }