function do_test(IntlTimeZone $tz, $proc = false)
{
    var_dump($tz->getID(), $tz->getRawOffset());
    if (!$proc) {
        $dtz = $tz->toDateTimeZone();
    } else {
        $dtz = intltz_to_date_time_zone($tz);
    }
    var_dump($dtz->getName(), $dtz->getOffset(new DateTime('2012-01-01 00:00:00')));
}
<?php

ini_set("intl.error_level", E_WARNING);
$tz = IntlTimeZone::createTimeZone('Etc/Unknown');
var_dump($tz->toDateTimeZone(''));
try {
    var_dump($tz->toDateTimeZone());
} catch (Exception $e) {
    var_dump($e->getMessage());
}
var_dump(intltz_to_date_time_zone());
var_dump(intltz_to_date_time_zone(1));