bueno prueba exactamente asi y veras que te da 30
Código PHP:
<?php
function FechaGarantia($fecha1){
//defino fecha 1
$fecha1= explode("-",$fecha1);
$ano1 = $fecha1[2];
$mes1 = $fecha1[1];
$dia1 = $fecha1[0];
//defino fecha 2
$ano2 = date("Y");
$mes2 = date("m");
$dia2 = date("d");
//calculo timestam de las dos fechas
$timestamp1 = mktime(0,0,0,$mes1,$dia1,$ano1);
$timestamp2 = mktime(0,0,0,$mes2,$dia2,$ano2); //20110520-20110627
//resto a una fecha la otra
$segundos_diferencia = $timestamp2 - $timestamp1;
//echo $segundos_diferencia;
//convierto segundos en días
$dias_diferencia = $segundos_diferencia / (60 * 60 * 24);
//obtengo el valor absoulto de los días (quito el posible signo negativo)
$dias_diferencia = abs($dias_diferencia);
//quito los decimales a los días de diferencia
$dias_diferencia = floor($dias_diferencia);
return $dias_diferencia;
}
echo FechaGarantia("28-07-2011");
?>
debes tener alguna otra falla