IntlCalendar
PHP Manual

IntlCalendar::clear

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::clearLimpiar uno o todos los campos

Descripción

Estilo orientado a objetos

public bool IntlCalendar::clear ([ int $field = NULL ] )

Estilo por procedimientos

bool intlcal_clear ( IntlCalendar $cal [, int $field = NULL ] )

Limpia todos los campos o uno específico. Un campo limpiado está marcado como desestablecido, dándole la prioridad más baja en campos traslapados o incluso en valores predeterminados al calcular el instante. Además, su valor se establece a 0, aunque dada la baja prioridad del campo, su valor podría haber sido establecido internamente a otro valor en el momento en que se ha terminado de consultar dicho campo.

Parámetros

cal

El recurso IntlCalendar.

field

Una de las constantes del campo fecha/hora de IntlCalendar. Son valores de tipo integer entre 0 y IntlCalendar::FIELD_COUNT.

Valores devueltos

Devuelve TRUE en caso de éxito o FALSE en caso de error. Un error sólo puede ocurrir si se proporcionan argumentos no válidos.

Ejemplos

Ejemplo #1 Ejemplod de IntlCalendar::clear()

<?php
ini_set
('intl.default_locale''es_ES');
ini_set('date.timezone''UTC');

$campos = array(
    
'FIELD_ERA'                  => 0,
    
'FIELD_YEAR'                 => 1,
    
'FIELD_MONTH'                => 2,
    
'FIELD_WEEK_OF_YEAR'         => 3,
    
'FIELD_WEEK_OF_MONTH'        => 4,
    
'FIELD_DATE'                 => 5,
    
'FIELD_DAY_OF_YEAR'          => 6,
    
'FIELD_DAY_OF_WEEK'          => 7,
    
'FIELD_DAY_OF_WEEK_IN_MONTH' => 8,
    
'FIELD_AM_PM'                => 9,
    
'FIELD_HOUR'                 => 10,
    
'FIELD_HOUR_OF_DAY'          => 11,
    
'FIELD_MINUTE'               => 12,
    
'FIELD_SECOND'               => 13,
    
'FIELD_MILLISECOND'          => 14,
    
'FIELD_ZONE_OFFSET'          => 15,
    
'FIELD_DST_OFFSET'           => 16,
    
'FIELD_YEAR_WOY'             => 17,
    
'FIELD_DOW_LOCAL'            => 18,
    
'FIELD_EXTENDED_YEAR'        => 19,
    
'FIELD_JULIAN_DAY'           => 20,
    
'FIELD_MILLISECONDS_IN_DAY'  => 21,
    
'FIELD_IS_LEAP_MONTH'        => 22,
    
'FIELD_FIELD_COUNT'          => 23,
);
function 
getSetFields(IntlCalendar $cal) {
    global 
$campos;
    
$ret = array();
    foreach (
$campos as $nombre => $valor) {
        if (
$cal->isSet($valor)) {
            
$ret[] = $nombre;
        }
    }
    return 
$ret;
}

$cal = new IntlGregorianCalendar(2013/* March */15);
echo 
"Después de la creación del GregorianCalendar\n";
print_r(getSetFields($cal));
echo 
"\n";

echo 
IntlDateFormatter::formatObject($cal), "\n";
echo 
"Después de que el formateador solicitó el año ampliado\n";
print_r(getSetFields($cal));
echo 
"\n";

$cal->clear(IntlCalendar::FIELD_YEAR);
echo 
"Después de que el año haya sido limpiado, la fecha permanece la misma\n";
echo 
IntlDateFormatter::formatObject($cal), "\n";
echo 
"puesto que FIELD_EXTENDED_YEAR aún está establecido\n";
print_r(getSetFields($cal));
echo 
"\n";

var_dump($cal->clear(IntlCalendar::FIELD_EXTENDED_YEAR));
echo 
"Después de haber limpiado el año ampliado\n";
print_r(getSetFields($cal));
echo 
IntlDateFormatter::formatObject($cal), "\n";
echo 
"\n";

echo 
"Después de recalcular los campos,\n"
        
" el año ampliado se establece de nuevo (a 1970)\n";
print_r(getSetFields($cal));
echo 
"\n";

$cal->clear();
echo 
"Después de invocar a una variante sin argumentos\n";
print_r(getSetFields($cal));
echo 
IntlDateFormatter::formatObject($cal), "\n";

El resultado del ejemplo sería:

Después de la creación del GregorianCalendar
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_YEAR
    [2] => FIELD_MONTH
    [3] => FIELD_DATE
)

15/03/2013 00:00:00
Después de que el formateador solicitó el año ampliado
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_YEAR
    [2] => FIELD_MONTH
    [3] => FIELD_DATE
    [4] => FIELD_EXTENDED_YEAR
)

Después de que el año haya sido limpiado, la fecha permanece la misma
15/03/2013 00:00:00
puesto que FIELD_EXTENDED_YEAR aún está establecido
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
    [3] => FIELD_EXTENDED_YEAR
)

bool(true)
Después de haber limpiado el año ampliado
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
)
15/03/1970 00:00:00

Después de recalcular los campos,
 el año ampliado se establece de nuevo (a 1970)
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
    [3] => FIELD_EXTENDED_YEAR
)

Después de invocar a una variante sin argumentos
Array
(
)
01/01/1970 00:00:00


IntlCalendar
PHP Manual