.. bueno, puedes hacer eso con strtotime() y mktime() como lo dijiste... el problema es el formato de salida, para eso hay que usar date()... desconosco una función PHP que haga todo de forma directa....
... .... ... me parece strtotime() puede hacerlo
habrá que leer la documentación oficial...
En SQL sí existe una función directa pués el formato es base... sería DATE_ADD("fecha_original", INTERVAL cantidad UNIDAD). Igual existe DATE_SUB() con los mismos parámetros... Chekate
www.mysql-hispano.org
Saludos!