Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/02/2013, 18:24
deepdesign
 
Fecha de Ingreso: junio-2012
Ubicación: Santiago, Chile
Mensajes: 20
Antigüedad: 11 años, 10 meses
Puntos: 0
Cambiar formato fecha para contar dias habiles

Hola!, necesito contar los días habiles, descontando fechas festivas. Pues encontré un script php que lo hace perfecto! pero mi problema es que este script lee las fechas como dia mes año, y yo las tengo almacenadas en mysql como año, mes, dia.

Lo que necesito es modificar el script, pero no lo he logrado. Por favor, si me pudieran ayudar a que el script pueda leer fechas como año mes dia, se los agradeceré mucho!. El script lo saqué del blog de felipe-pena.

Código PHP:
<?php

//1.- Pasar la fecha inicial y final a maketime y obtener un arreglo con todas los días intermedios.

function DiasHabiles($fecha_inicial,$fecha_final

list(
$dia,$mes,$year) = explode("-",$fecha_inicial); 
$ini mktime(000$mes $dia$year); 
list(
$diaf,$mesf,$yearf) = explode("-",$fecha_final); 
$fin mktime(000$mesf $diaf$yearf); 

$r 1
while(
$ini != $fin

$ini mktime(000$mes $dia+$r$year); 
$newArray[] .=$ini;  
$r++; 

return 
$newArray
}



//2.- Una función que evalué el arreglo de fechas obtenido, que contenga los feriados nacionales que correspondan (restando) y que reste los sábados y domingos.

function Evalua($arreglo

$feriados        = array( 
'1-1',  //  Año Nuevo (irrenunciable) 
'10-4',  //  Viernes Santo (feriado religioso) 
'11-4',  //  Sábado Santo (feriado religioso) 
'1-5',  //  Día Nacional del Trabajo (irrenunciable) 
'21-5',  //  Día de las Glorias Navales 
'29-6',  //  San Pedro y San Pablo (feriado religioso) 
'16-7',  //  Virgen del Carmen (feriado religioso) 
'15-8',  //  Asunción de la Virgen (feriado religioso) 
'18-9',  //  Día de la Independencia (irrenunciable) 
'19-9',  //  Día de las Glorias del Ejército 
'12-10',  //  Aniversario del Descubrimiento de América 
'31-10',  //  Día Nacional de las Iglesias Evangélicas y Protestantes (feriado religioso) 
'1-11',  //  Día de Todos los Santos (feriado religioso) 
'8-12',  //  Inmaculada Concepción de la Virgen (feriado religioso) 
'13-12',  //  elecciones presidencial y parlamentarias (puede que se traslade al domingo 13) 
'25-12',  //  Natividad del Señor (feriado religioso) (irrenunciable) 
); 

$jcount($arreglo); 

for(
$i=0;$i<=$j;$i++) 

$dia $arreglo[$i]; 

        
$fecha getdate($dia); 
            
$feriado $fecha['mday']."-".$fecha['mon']; 
                    if(
$fecha["wday"]==or $fecha["wday"]==6
                    { 
                        
$dia_ ++; 
                    } 
                        elseif(
in_array($feriado,$feriados)) 
                        {    
                            
$dia_++; 
                        } 

$rlt $j $dia_
return 
$rlt
}



//3.- Se llama a las funciones.
$CantidadDiasHabiles Evalua(DiasHabiles('19-10-2010','28-12-2010')); 

echo   
$CantidadDiasHabiles;

?>