1--TEST-- 2IntlDateFormatter, calendars and time zone 3--INI-- 4date.timezone=Atlantic/Azores 5--SKIPIF-- 6<?php 7if (!extension_loaded('intl')) die('skip intl extension not enabled'); ?> 8<?php if (version_compare(INTL_ICU_VERSION, '51.2') < 0) die('skip for ICU >= 51.2'); ?> 9<?php if (version_compare(INTL_ICU_VERSION, '54.1') >= 0) die('skip for ICU < 54.1'); ?> 10--FILE-- 11<?php 12ini_set("intl.error_level", E_WARNING); 13 14$fmt1 = new IntlDateFormatter('en_US', 15 IntlDateFormatter::FULL, 16 IntlDateFormatter::FULL, 17 'GMT+05:12', 18 IntlDateFormatter::TRADITIONAL); 19$fmt2 = new IntlDateFormatter('en_US', 20 IntlDateFormatter::FULL, 21 IntlDateFormatter::FULL, 22 'GMT+05:12', 23 IntlDateFormatter::GREGORIAN); 24$fmt3 = new IntlDateFormatter('en_US@calendar=hebrew', 25 IntlDateFormatter::FULL, 26 IntlDateFormatter::FULL, 27 'GMT+05:12', 28 IntlDateFormatter::TRADITIONAL); 29var_dump($fmt1->format(strtotime('2012-01-01 00:00:00 +0000'))); 30var_dump($fmt2->format(strtotime('2012-01-01 00:00:00 +0000'))); 31var_dump($fmt3->format(strtotime('2012-01-01 00:00:00 +0000'))); 32 33new IntlDateFormatter('en_US@calendar=hebrew', 34 IntlDateFormatter::FULL, 35 IntlDateFormatter::FULL, 36 'GMT+05:12', 37 -1); 38?> 39==DONE== 40--EXPECTF-- 41string(47) "Sunday, January 1, 2012 at 5:12:00 AM GMT+05:12" 42string(47) "Sunday, January 1, 2012 at 5:12:00 AM GMT+05:12" 43string(48) "Sunday, Tevet 6, 5772 AM at 5:12:00 AM GMT+05:12" 44 45Fatal error: Uncaught IntlException: IntlDateFormatter::__construct(): datefmt_create: invalid value for calendar type; it must be one of IntlDateFormatter::TRADITIONAL (locale's default calendar) or IntlDateFormatter::GREGORIAN. Alternatively, it can be an IntlCalendar object in %sdateformat_calendars_variant2.php:27 46Stack trace: 47#0 %sdateformat_calendars_variant2.php(27): IntlDateFormatter->__construct('en_US@calendar=...', 0, 0, 'GMT+05:12', -1) 48#1 {main} 49 thrown in %sdateformat_calendars_variant2.php on line 27 50