Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/09/2009, 08:46
Avatar de Marvin
Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 20 años
Puntos: 81
Respuesta: Problema con fechas

No existe una funcion predefinida para eso... pero puedes intentar con esto:
Código PHP:
$fechaCurso '12-03-2009'//fecha de inicio del curso
$diasCurso = array('2','4'); //Martes y Jueves
$hoy '16-06-2009'//fecha ficticia de hoy

echo calculaDiasCursos($hoy,$fechaCurso,$diasCurso);


function 
calculaDiasCursos($hoy,$fechaCurso,$diasCurso){
    
$mkCurso explode('-',$fechaCurso);

    
//1 Lunes al 7 Domingo
    
$diasCount = array('1','2','3','4','5','6','7');
    
$numDias count($diasCount);
    
    
$fechaHoy explode('-',$hoy);
    
    
$semanaAno date('W',mktime(000$fechaHoy[1], $fechaHoy[0], $fechaHoy[2])); //esta semana
    
$diaSemana date('N',mktime(000$fechaHoy[1], $fechaHoy[0], $fechaHoy[2])); //este dia
    
    
$calcula1 mktime(000$mkCurso[1], $mkCurso[0], $mkCurso[2]);
    
$calcula2 mktime(000$fechaHoy[1], $fechaHoy[0], $fechaHoy[2]);
    
    
$diferencia = (intval($calcula2 $calcula1))/24/60/60//dias entre el comienzo del curso y hoy
    
    
$semanaDiff abs(date('W',mktime(000$mkCurso[1], $mkCurso[0], $mkCurso[2])) - $semanaAno); // semanas entre el comienzo y hoy
    
    
$x 0;
    
$contar 0;
    while(
$x <= $semanaDiff){
        if(
$semanaDiff == $x){
            foreach (
$diasCurso as $dia){
                if(
$dia <= $diaSemana){
                    for(
$a=0;$a<$numDias;$a++){
                        if(
$dia == $diasCount[$a]){
                            
$contar++;
                        }
                    }
                }
            }
        }else{
            foreach (
$diasCurso as $dia){
                for(
$a=0;$a<$numDias;$a++){
                    if(
$dia == $diasCount[$a]){
                        
$contar++;
                    }
                }
            }
        }
        
$x++;
    }
    
    return 
$contar;

No esta completamente testeada asi que si falta algo puedes probar y arreglarlo.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!