Yo lo que suelo hacer es manejar las fecha en formato timestamp.
Breve paréntesis: Timestamp es...
Tiempo universal en Unix, un timestamp UNIX es el número de segundos desde 00:00:00 UTC del 1 de enero de 1970 (UNIX Epoch) hasta el momento en que se crea el timestamp, es usado también en Linux y en sistemas de Base de Datos como MySQL o DB2. Dicho UNIX timestamp es de amplio uso para ordenación y seguimiento de información en aplicaciones distribuidas y aplicaciones dinámicas.
Cita obtenida del artículo
Timestamp de Wikipedia
... Cerramos paréntesis. Continuando con la explicación lo que yo suelo hacer es manejar las fechas en formato timestamp, esto me permite manejarlas facilmente a la hora de sumar, restar, etc...
Por ejemplo.
Código PHP:
$ahora = time();
$prox_semana = strtotime ("+1 week");
// Restamos
$resultado = $prox_semana - $ahora;
// El resultado como sabemos esta en segundos, pasamos a dias por ejemplo
$dias = $resultado / 86400; // 86400 es el número de segundos que tiene un día.
echo "Faltan $dias para la semana que viene";
PD: El código anterior no lo he probado así que puede contener errores.
PD2: Si deseas pasar un timestamp a formato de fecha legible utiliza date("d/m/Y",$timestamp);
Saludos!!