Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/09/2010, 14:06
Avatar de repara2
repara2
 
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 3 meses
Puntos: 331
Respuesta: Intervalo entre varias fechas

Te paso dos funciones que te pueden servir:

Código PHP:
<?php

// Las xDates están en formato dd-mm-yyyy cbruschi.blogspot.com
    
function rdates($xDate1$xDate0) {
        return 
date2days(ymd($xDate1)) - date2days(ymd($xDate0));
    }

    
// xDate a días.
    
function date2days($xDate) {
        
// yyyy-mm-dd
        
list($anyo$mes$dia) = explode("-"$xDate);
    
        
// Días acumulados por meses.
        // Basta hasta novimbre.
        
$ar_dias = array(
            
31
            
31 28
            
31 28 31
            
31 28 31 30
            
31 28 31 30 31
            
31 28 31 30 31 30
            
31 28 31 30 31 30 31
            
31 28 31 30 31 30 31 31
            
31 28 31 30 31 30 31 31 30
            
31 28 31 30 31 30 31 31 30 31
            
31 28 31 30 31 30 31 31 30 31 30); 
    
        
$xReturn floor(($anyo 1901) * 365.25);
        
$xReturn += (($mes != 1) ? $ar_dias[$mes 2] : 0);        // El array empieza en 0.
        
$xReturn += $dia;
        
$xReturn += (($mes 2) && checkdate(0229$anyo) ? 0);
    
        return 
$xReturn;
    }
    
    
// Cambia una xDate en formato dd-mm-yyyy al formato yyyy-mm-dd
    
function ymd($xDate){ 
        
$mixDate explode($xDate[2], $xDate);
        
$laxDate=$mixDate[2]."-".$mixDate[1]."-".$mixDate[0]; 
        return 
$laxDate
    } 
    
    
/**
Intervalo 1: 01 - 09 - 2010 a 30 - 09 - 2010 = 30 días
Intervalo 2: 15 - 09 - 2010 a 15 - 10 - 2010 = 30 días
*/
    //Te quedas con la mayor y la menor, utiliza la db u otra funcion para calcularlas.
    
    
$int0 "01-09-2010";
    
$int1 "15-10-2010";
    
    echo 
rdates($int1$int0);
    
    
?>
Lo pruebas y me cuentas, saludos