Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/09/2009, 00:45
Banshi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con fechas

Cita:
Iniciado por Marvin Ver Mensaje
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!
Funciona perfectamente, muchas gracias
EDITO: He comprobado la función en más casos y falla :S

Última edición por Banshi; 30/09/2009 a las 02:29