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;
}