[Resolvido] Função que soma dias utéis a uma data específica
Olá pessoal,
Em dezembro do ano passado, criei uma função para somar dias utéis a data específica. A função pode ser visualizada aqui:
http://leandrovieira.com/archive/somando-d...ecifica-com-php
Porém, ela está com um pequeno bug, e talvez alguém aqui consiga resolver.
Explico.
Se utilizo echo somar_dias_uteis('2007-02-16',3); a função me retorna: 20/02/2007 (errado) quando deveria retornar 21/02/2007 (certo).
Aqui está o código da função:
function somar_dias_uteis($str_data,$int_qtd_dias_somar = 7) { // Caso seja informado uma data do MySQL do tipo DATETIME - aaaa-mm-dd 00:00:00 // Transforma para DATE - aaaa-mm-dd $str_data = substr($str_data,0,10); // Se a data estiver no formato brasileiro: dd/mm/aaaa // Converte-a para o padrão americano: aaaa-mm-dd if ( preg_match("@/@",$str_data) == 1 ) { $str_data = implode("-", array_reverse(explode("/",$str_data))); } $count_days = 0; $int_qtd_dias_uteis = 0; while ( $int_qtd_dias_uteis < $int_qtd_dias_somar ) { $count_days++; //if ( ( $dias_da_semana = date('w', strtotime('+'.$count_days.' day')) ) != '0' && $dias_da_semana != '6' ) { if ( ( $dias_da_semana = gmdate('w', strtotime('+'.$count_days.' day')) ) != '0' && $dias_da_semana != '6' ) { $int_qtd_dias_uteis++; } } return gmdate('d/m/Y',strtotime('+'.$count_days.' day',strtotime($str_data)));}Valeus.
Discussão (3)
Carregando comentários...