<?php

ini_set("intl.error_level", E_WARNING);
ini_set("intl.default_locale", "nl");
$intlcal1 = new IntlGregorianCalendar(2012, 1, 29, 16, 59, 59);
$intlcal2 = IntlCalendar::createInstance(null, '@calendar=japanese');
$intlcal3 = new IntlGregorianCalendar(2012, 1, 29, 17, 00, 00);
$intlcal2->setTime($intlcal1->getTime());
var_dump($intlcal2->getType());
var_dump("1 eq 1", $intlcal1->equals($intlcal1));
var_dump("1 eq 2", $intlcal1->equals($intlcal2));
var_dump("1 before 2", $intlcal1->before($intlcal2));
var_dump("1 after 2", $intlcal1->after($intlcal2));
var_dump("1 eq 3", $intlcal1->equals($intlcal3));
var_dump("1 before 3", $intlcal1->before($intlcal3));
var_dump("1 after 3", $intlcal1->after($intlcal3));
var_dump("3 eq 2", intlcal_equals($intlcal3, $intlcal2));
var_dump("3 before 2", intlcal_before($intlcal3, $intlcal2));
var_dump("3 after 2", intlcal_after($intlcal3, $intlcal2));
?>
==DONE==
<?php 
ini_set("intl.error_level", E_WARNING);
ini_set("intl.default_locale", "nl");
date_default_timezone_set('Europe/Amsterdam');
//28 October 2012, transition from DST
$intlcal = new IntlGregorianCalendar(2012, 9, 28, 0, 0, 0);
var_dump($intlcal->setRepeatedWallTimeOption(IntlCalendar::WALLTIME_LAST));
var_dump($intlcal->getRepeatedWallTimeOption());
$intlcal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 2);
$intlcal->set(IntlCalendar::FIELD_MINUTE, 30);
var_dump(strtotime('2012-10-28 02:30:00 +0100'), (int) ($intlcal->getTime() / 1000));
var_dump(intlcal_set_repeated_wall_time_option($intlcal, IntlCalendar::WALLTIME_FIRST));
var_dump(intlcal_get_repeated_wall_time_option($intlcal));
$intlcal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 2);
$intlcal->set(IntlCalendar::FIELD_MINUTE, 30);
var_dump(strtotime('2012-10-28 02:30:00 +0200'), (int) ($intlcal->getTime() / 1000));
?>
==DONE==
<?php

ini_set("intl.error_level", E_WARNING);
$c = new IntlGregorianCalendar(NULL, 'pt_PT');
var_dump($c->getTime(1));
var_dump(intlcal_get_time($c, 1));
var_dump(intlcal_get_time(1));
<?php

ini_set("intl.error_level", E_WARNING);
date_default_timezone_set('Europe/Amsterdam');
$intlcal = intlgregcal_create_instance(2012, 1, 29, 16, 0, NULL);
var_dump($intlcal->getTimeZone()->getId());
var_dump($intlcal->getTime(), (double) strtotime('2012-02-29 16:00:00') * 1000);
$intlcal = new IntlGregorianCalendar(2012, 1, 29, 16, 7, 8);
var_dump($intlcal->getTime(), (double) strtotime('2012-02-29 16:07:08') * 1000);
var_dump($intlcal->getType());
?>
==DONE==