. support for diffing date/times through date_diff() / DateTime::diff().
. added DateInterval class to represent the difference between two date/times.
. support for parsing ISO intervals for use with DateInterval.
. date_add() / DateTime::add(), date_sub() / DateTime::sub() for applying an
interval to an existing date/time.
* date_parse_from_format(): Parse date/time strings according to a format.
* date_create_from_format()/DateTime::createFromFormat(): Create a date/time
object by parsing a date/time string according to a given format.
* date_get_last_errors()/DateTime::getLastErrors(): Return a list of warnings
and errors that were found while parsing a date/time string through:
- strtotime() / new DateTime
- date_create_from_format() / DateTime::createFromFormat()
- date_parse_from_format()
including warnings and errors.
- Added the timezone_name_from_abbr() function that exposes the guessing
mechanism that tries to find a timezone identifier from a timezone
abbreviation and GMT offset.
- Fixed a bug where combined date formats 'c' and 'r' were cut off due to
insufficient space in the buffer.
- Implemented better error and warning handling that is also used for the
date_parse() function.
- Fixed the date::RFC3339 class constant.
- Fixed bug #37017 (strtotime fails before 13:00:00 with some time zones
identifiers)
- Fixed problems with "T" in front of a time string was seen as a time zone
string.
- Fixed a problem were 5 and 6 character timezone abbreviations where not
correctly parsed.
- Made the test cases work with the normal non-class constants.
- Merged new timelib, which is a bit more cleverer
- Support "UTC" in strtotime() properly.
- Added astro code, which is going to form the base for the new sunfuncs.
- Fixed problems with lone years in strtotime().
- Added functions to timelib to get a list of all abbreviations and timezone
identifiers.
- Fixed problems with parsed dates that only have GMT offsets associated
with them.
- Fixed a Windows compile problem.
- Added special constants for different often used date formats (DATE_ISO8601,
DATE_RFC822, DATE_RSS etc).
- Fixed date_default_timezone_get() to return the guessed timezone if none
was set yet with date_default_timezone_set().
- Added experimental support for Date/Timezone objects as per specifications.
- Removed old date/gmdate implementations.
- Moved date() related testcases to ext/date/tests.
- Implemented bug #33452.
- Fixed testcase for bug #27719 - there is no timezone called "EST5DST".