Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera é o seguinte a função a baixo está retornando o seguinte erro:
Maximum execution time of 60 seconds exceeded
O erro acontece na linha 588 correspondente a esse trecho $dataCorrente = strtotime(date('Y-m-d H:i:s', $i)); no código abaixo...
Eu sei que posso usar set_time_limit(120); para aumentar o tempo de execução, porem eu quero que essa função execute o mais rápido possível....
Aguardo as dicas...
/**
* @author Ítalo Gustavo Araújo
* @email italogustavoaraujo@gmail.com
* @param $inicio, $final, $hManha, $hTarde, $hNoite, $hHp
* @return array
* */
function calculo( $inicio, $final, $hManha, $hTarde, $hNoite, $hHp )// BASE DE HORÁRIOS
$manha = strtotime(date('Y-m-d').$hManha);
$tarde = strtotime(date('Y-m-d').$hTarde);
$noite = strtotime(date('Y-m-d').$hNoite);
$hp = strtotime(date('Y-m-d').$hHp);
// INSTANCIANDO AS VARIÁVEIS
$acmManha = $acmTarde = $acmNoite = $acmHp = 0;
// BASE PARA A MANIPULAÇÃO DO TEMPO/HORAS
$aux = strtotime(date('Y-m-d') . date('H:i:s', strtotime($inicio)));
// PERCORRE DA DATA/TEMPO/INICIO ATÉ DATA/TEMPO/FINAL
for( $i = strtotime($inicio); $i < strtotime($final); $i++ )
{
// NÃO DEIXA AUMENTAR O DIA
if( date('d', $aux) != date('d') )
{
$aux = strtotime(date('Y-m-d') . date('H:i:s', strtotime('00:00:00')));
}
// INCREMENTADOR DE SEGUNDOS GERAL
$aux += 1;
// VERIFICA SE É SÁBADO, DOMINGO E FERIADO
$dataCorrente = strtotime(date('Y-m-d H:i:s', $i));
if((getDayOfWeek($dataCorrente) == 'Sábado') or (getDayOfWeek($dataCorrente) == 'Domingo')){
$acmTarde++;
}
else if( $aux >= $hp ) { $acmHp++; }
else if( $aux >= $noite ) { $acmNoite++; }
else if( $aux >= $manha ) { $acmManha++; }
}
// RETORNO DA FUNÇÃO
return array(
'manha' => $acmManha,
'tarde' => $acmTarde,
'noite' => $acmNoite,
'hp' => $acmHp
);
}Carregando comentários...