(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)
IntlCalendar::setTimeZone — Define el huso horario utilizado por este calendario
Estilo orientado a objetos
Estilo por procedimientos
$calendar
, IntlTimeZone|DateTimeZone|string|null $timezone
): boolDefine un nuevo huso horario para este calendario. El momento representado por este objeto es preservado a expensas de los valores de los campos.
calendar
An IntlCalendar instance.
timezone
El nuevo huso horario a utilizar por este calendario. Puede ser especificado de la siguiente manera:
null
, en cuyo caso se usará la zona horaria predeterminada, tal como está especificada
en el ajuste ini date.timezone o
a través de la función date_default_timezone_set() y como
es devuelto por date_default_timezone_get().
Un IntlTimeZone, que se usará directamente.
Un DateTimeZone. Su identificador será extraido y se creará un objeto de zona horaria de ICU; la zona horaria será proporcionada por la base de datos de ICU, no por la de PHP.
Un string, que debería ser un identificador de zona horaria de ICU válido.
Véase IntlTimeZone::createTimeZoneIDEnumeration(). Los índices
puros como "GMT+08:30"
también se aceptan.
Ejemplo #1 Ejemplo con IntlCalendar::setTimeZone()
<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'es_ES');
$cal = new IntlGregorianCalendar(2013, 5 /* May */, 1, 12, 0, 0);
echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";
$cal->setTimeZone(IntlTimeZone::getGMT());
echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";
$cal->setTimeZone('GMT+03:33');
echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";
El resultado del ejemplo sería:
sábado, 1 de junio de 2013 12:00:00 Hora de verano de Europa occidental (instant 1370084400000) sábado, 1 de junio de 2013 11:00:00 GMT (instant 1370084400000) sábado, 1 de junio de 2013 14:33:00 GMT+03:33 (instant 1370084400000)