I've made some modifications to ext/intl's IntlCalendar/IntlTimeZone to improve interoperability.

* DateTimeZone is now accepted in all places time zones are expected in IntlCalendar. * Added IntlTimeZone::toDateTimeZone() and IntlTimeZone::fromDateTimeZone().
* Added IntlCalendar::toDateTime() and IntlCalendar::fromDateTime().

Unfortunately, ext/date doesn't expose a lot of interfaces to manipulate its objects, so in some places I ended up having to call PHP_FUNCTIONs (in one case even twice doing to a bug; see https://github.com/cataphract/php-src/commit/3a81f90ebc51140484c617539b1a5fb0e117f4e2#L1R1264 ).

The conversion from DateTimeZone to IntlTimeZone is made through the ids only because ext/date doesn't expose interfaces to efficiently implement ICU's TimeZone. This may lead to some different behavior for the same time zone id if the databases are out of sync.

The changes are here: https://github.com/cataphract/php-src/compare/intl_calendar

If no one objects, I'll merge it soon.

--
Gustavo Lopes

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to