(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)
IntlCalendar::getSkippedWallTimeOption — Obtener el comportamiento para tratar horas omitidas
Estilo orientado a objetos
Estilo por procedimientos
Obtiene la estrategia actual para tratar con horas omitidassiempre que el
reloj se adelante durante las transiciones del inicio del horario de verano (DST).
El valor predeterminado es IntlCalendar::WALLTIME_LAST
.
El calendario debe ser tolerante para que esta opción tenga efecto, si no, el intento de establecer un instante no existente provocará un error.
Esta función requiere ICU 4.9 o posterior.
cal
El recurso IntlCalendar.
Una de las constantes IntlCalendar::WALLTIME_FIRST
,
IntlCalendar::WALLTIME_LAST
o
IntlCalendar::WALLTIME_NEXT_VALID
.
Ejemplo #1 IntlCalendar::getSkippedWallTimeOption()
<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');
ini_set('intl.error_level', E_WARNING);
// El 31 de marzo a las 0100, el reloj se adelanta 1 hora y se cambia de GMT+00 a GMT+01
$cal = new IntlGregorianCalendar(2013, 2 /* March */, 31, 1, 30);
var_dump(
$cal->isLenient(), // true
$cal->getSkippedWalltimeOption() // 0 WALLTIME_LAST
);
$formateador = IntlDateFormatter::create(
NULL,
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'UTC'
);
var_dump($formateador->format($cal->getTime() / 1000));
$cal->setSkippedWallTimeOption(IntlCalendar::WALLTIME_FIRST);
var_dump($cal->getSkippedWalltimeOption()); // 1 WALLTIME_FIRST
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1);
var_dump($formateador->format($cal->getTime() / 1000));
$cal->setSkippedWallTimeOption(IntlCalendar::WALLTIME_NEXT_VALID);
var_dump($cal->getSkippedWalltimeOption()); // 2 WALLTIME_NEXT_VALID
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1);
var_dump($formateador->format($cal->getTime() / 1000));
El resultado del ejemplo sería:
bool(true) int(0) string(40) "Sunday, March 31, 2013 at 1:30:00 AM GMT" int(1) string(41) "Sunday, March 31, 2013 at 12:30:00 AM GMT" int(2) string(40) "Sunday, March 31, 2013 at 1:00:00 AM GMT"