Si bien para la mayoría de las operaciones de fecha y hora, normalmente convertiría a Unixtime y realizaría sumas, restas, etc. en el entero de Unixtime, es posible que desee ver la clase Zend_Date del marco Zend.
Tiene muchas de las funciones que describes. Aunque Zend se anuncia como un "marco", funciona excepcionalmente bien como una biblioteca de clases para seleccionar y elegir elementos. Rutinariamente lo incluimos en proyectos y luego simplemente incorporamos bits cuando los necesitamos.