Hola
yole,
Hace unos días encontré esta función, la he probado y va bastante bien, además de ser flexible con los datos que introduces.
http://stackoverflow.com/a/676828
Las integras, y con esto te daría el resultado
Código PHP:
// datos a introducir
$dateIni = strtotime('2012-02-01 00:00:00');
$dateEnd = strtotime('2013-03-02 12:12:12');
// ejecutas la función
$diff = _date_diff($dateIni, $dateEnd);
// resultados
$diff['y'] // año
$diff['m'] // mes
$diff['d'] // día
$diff['h'] // horas
$diff['i'] // minutos
$diff['s'] // segundos
$diff['invert'] // 0 es de - a +
$diff['days'] // diferencia en días totales
Código PHP:
// ...
// si cambias el orden cambiará a 1 en el 'invert'
$diff = _date_diff($dateEnd, $dateIni);
// resultados
//...
$diff['invert'] // 1 es de + a - la diferencia
Código PHP:
// también admite
$dateIni = time();
//...
Creo que podrías integrarla perfectamente para lo que necesitas.
Saludos,