<?php

ini_set("intl.error_level", E_WARNING);
ini_set("intl.default_locale", "nl");
date_default_timezone_set('Europe/Lisbon');
var_dump(IntlCalendar::fromDateTime());
var_dump(IntlCalendar::fromDateTime(0, 1, 2));
try {
    IntlCalendar::fromDateTime("foobar");
} catch (Exception $e) {
    echo "threw exception, OK";
}
class A extends DateTime
{
    function __construct()
    {
    }
}
var_dump(IntlCalendar::fromDateTime(new A()));
$date = new DateTime('2012-01-01 00:00:00 +24:00');
var_dump(IntlCalendar::fromDateTime($date));
$date = new DateTime('2012-01-01 00:00:00 WEST');
var_dump(IntlCalendar::fromDateTime($date));
var_dump(intlcal_from_date_time());
<?php

ini_set("intl.error_level", E_WARNING);
ini_set("intl.default_locale", "nl_NL");
date_default_timezone_set('Europe/Lisbon');
$cal = IntlCalendar::fromDateTime('2012-01-01 00:00:00 Europe/Rome');
var_dump($cal->getTime(), strtotime('2012-01-01 00:00:00 Europe/Rome') * 1000.0, $cal->getTimeZone()->getID(), $cal->getLocale(1));
echo "\n";
$cal = IntlCalendar::fromDateTime(new DateTime('2012-01-01 00:00:00 PST'), "pt_PT");
var_dump($cal->getTime(), strtotime('2012-01-01 00:00:00 PST') * 1000.0, $cal->getTimeZone()->getID(), $cal->getLocale(1));
echo "\n";
$cal = intlcal_from_date_time(new DateTime('2012-01-01 00:00:00 +03:40'));
var_dump($cal->getTime(), strtotime('2012-01-01 00:00:00 +03:40') * 1000.0, $cal->getTimeZone()->getID());