1--TEST--
2IntlDateFormatter: several forms of the timezone arg
3--SKIPIF--
4<?php
5if (!extension_loaded('intl')) die('skip intl extension not enabled'); ?>
6<?php if (version_compare(INTL_ICU_VERSION, '52.1') < 0) die('skip for ICU >= 52.1'); ?>
7<?php if (version_compare(INTL_ICU_VERSION, '54.1') >=  0) die('skip for ICU < 54.1'); ?>
8--FILE--
9<?php
10ini_set("intl.error_level", E_WARNING);
11ini_set("date.timezone", 'Atlantic/Azores');
12
13$ts = strtotime('2012-01-01 00:00:00 UTC');
14
15//should use Atlantic/Azores
16$df = new IntlDateFormatter('es_ES', 0, 0, NULL);
17echo $df->format($ts), "\n";
18
19$df = new IntlDateFormatter('es_ES', 0, 0, 'Europe/Amsterdam');
20echo $df->format($ts), "\n";
21
22$df = new IntlDateFormatter('es_ES', 0, 0, new DateTimeZone('Europe/Lisbon'));
23echo $df->format($ts), "\n";
24
25$df = new IntlDateFormatter('es_ES', 0, 0, IntlTimeZone::createTimeZone('America/New_York'));
26echo $df->format($ts), "\n";
27
28//time zone has priority
29$df = new IntlDateFormatter('es_ES', 0, 0, 'Europe/Amsterdam', new IntlGregorianCalendar('Europe/Lisbon'));
30echo $df->format($ts), "\n";
31
32//calendar has priority
33$df = new IntlDateFormatter('es_ES', 0, 0, NULL, new IntlGregorianCalendar('Europe/Lisbon'));
34echo $df->format($ts), "\n";
35
36$df = new IntlDateFormatter('es_ES', 0, 0, 'Europe/Amsterdam', 0);
37echo $df->format($ts), "\n";
38--EXPECTF--
39sábado%S 31 de diciembre de 2011, 23:00:00 (Hora estándar de las Azores)
40domingo%S 1 de enero de 2012, 1:00:00 (Hora estándar de Europa central)
41domingo%S 1 de enero de 2012, 0:00:00 (Hora%S estándar de Europa occidental)
42sábado%S 31 de diciembre de 2011, 19:00:00 (Hora estándar oriental)
43domingo%S 1 de enero de 2012, 1:00:00 (Hora estándar de Europa central)
44domingo%S 1 de enero de 2012, 0:00:00 (Hora%S estándar de Europa occidental)
45domingo%S 1 de enero de 2012, 1:00:00 (Hora estándar de Europa central)
46