Skip to content

Stdlib: IntlTimeZone::getUnknown()/getUTC()/createEnumeration()/getIDForWindowsID() missing after #20769 (ext/intl/timezone) #20852

Description

@PurHur

Category

stdlib · php-src-strict · ext/intl IntlTimeZone catalog / identity API

Problem

After #6151 / #20769, VM (PROFILE=8.4) has a usable IntlTimeZone core (createTimeZone, createDefault, getGMT, getID, getOffset, getRawOffset, getDisplayName, getDSTSavings, getCanonicalID, getRegion, hasSameRules, toDateTimeZone, useDaylightTime). Sibling #20824 already tracks countEquivalentIDs / getEquivalentID / getTZDataVersion / getWindowsID.

Separately, php-src still exposes static catalog / sentinel helpers and Windows↔Olson reverse mapping that remain undefined — do not duplicate #20824.

Repro Zend (intl) VM PROFILE=8.4 (2026-07-19)
method_exists('IntlTimeZone', 'getGMT') / createTimeZone true true
method_exists('IntlTimeZone', 'getUnknown') true false
method_exists('IntlTimeZone', 'getUTC') true (PHP 8.4+) false
method_exists('IntlTimeZone', 'createEnumeration') / createTimeZoneIDEnumeration true false
method_exists('IntlTimeZone', 'getIDForWindowsID') true false
method_exists('IntlTimeZone', 'getErrorCode') / getErrorMessage true false
countEquivalentIDs / getWindowsID / … tracked in #20824

php-src reference

PHP implementation target

Repro

./script/docker-exec.sh -- bash -lc 'source script/php-env.sh
cat > /tmp/tz_catalog_gap.php << "PHP"
<?php
foreach (["getGMT","getUnknown","getUTC","createEnumeration","createTimeZoneIDEnumeration","getIDForWindowsID","getErrorCode","getErrorMessage","countEquivalentIDs","getWindowsID"] as $m) {
  echo "$m=" . (method_exists("IntlTimeZone", $m) ? "yes" : "no") . "\n";
}
PHP
PHP_COMPILER_PROFILE=8.4 php bin/vm.php /tmp/tz_catalog_gap.php'

Observed (2026-07-19):

getGMT=yes
getUnknown=no
getUTC=no
createEnumeration=no
createTimeZoneIDEnumeration=no
getIDForWindowsID=no
getErrorCode=no
getErrorMessage=no
countEquivalentIDs=no
getWindowsID=no

(countEquivalentIDs/getWindowsID#20824)

Done when

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:vmVirtual machineenhancementNew feature or requestimplementation-readySpec complete: repro, php-src ref, done-when — safe for workers to claimphase-4:stdlibPhase 4 – stdlib for web appsstdlib

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions