All dates and times, even ambiguous ones (e.g. no year), are represented internally as absolute moments in time, represented as a UNIX timestamp expressing the difference between the desired time and January 1st, 1970 00:00:00 GMT. This was only possible, because
Zend_Dateis not limited to UNIX timestamps nor integer values. The BCMath extension is required to support extremely large dates outside of the range Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT. Additional, tiny math errors may arise due to the inherent limitations of float data types and rounding, unless using the BCMath extension.
Date parts as timestamp offsets
Thus, an instance object representing three hours would be expressed as three hours after January 1st, 1970 00:00:00 GMT -i.e. 0 + 3 * 60 * 60 = 10800.
Zend_Dateusually uses PHP functions to improve performance.