This fixes:
- Fixed bug #72719 (Relative datetime format ignores weekday on sundays only).
- Fixed bug #73294 (DateTime wrong when date string is negative).
- Fixed bug #73489 (wrong timestamp when call setTimeZone multi times with UTC
offset).
- Fixed bug #73858 (first/last day of' flag is not being reset).
- Fixed bug #73942 ($date->modify('Friday this week') doesn't return a Friday
if $date is a Sunday).
- Fixed bug #74057 (wrong day when using "this week" in strtotime).
It fixes several bugs:
- Fixed bug #45554 (Inconsistent behavior of the u format char).
- Fixed bug #48225 (DateTime parser doesn't set microseconds for "now").
- Fixed bug #52514 (microseconds are missing in DateTime class).
- Fixed bug #52519 (microseconds in DateInterval are missing).
- Fixed bug #68506 (General DateTime improvments needed for microseconds to become useful).
- Fixed bug #73109 (timelib_meridian doesn't parse dots correctly).
- Fixed bug #73247 (DateTime constructor does not initialise microseconds property).
It also updates timelib to 2016.04, and updates a data mapping file, which
causes changes to the volatile abbreviations tests.
Adding a non-zero multiple of 5 weekdays to any Friday, Saturday, or
Sunday would result in a Sunday instead of the correct date. This patch
provides an implementation of do_adjust_special_weekday() which does
not suffer from this issue.
. 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.
- MFH: Fixed bug #44742 (timezone_offset_get() causes segmentation faults).
identifiers). (Derick)
- MFH: Fixed bug #36988 (mktime freezes on long numbers). (Derick)
- MFH: Implemented better error and warning handling that is also used for the
date_parse() function.
- MFH: Fixed problems with "T" in front of a time string was seen as a time
zone string.
- MFH: Fixed a problem were 5 and 6 character timezone abbreviations where not
correctly parsed.
Experimental support (All MFH):
- Added the date_parse() function that returns a parsed date/time string
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.
- 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".