IntlCalendar::clear

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

IntlCalendar::clearVide un ou tous les champs

Description

Style orienté objet

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

Style procédural

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

Vide soit tous les champs, soit un champ spécifique. Un champ vide est marqué comme non utilisé, lui donnant ainsi la plus petite des priorités par rapport aux champs surchargés ou même les valeurs par défaut lors du calcul du temps. De plus, cette valeur est définie à 0, donnant ainsi au champ une priorité basse ; cette valeur peut avoir été définie à une autre valeur par la durée que le champ a mis à terminer sa requête.

Liste de paramètres

cal

La ressource IntlCalendar.

field

Une constantes de champ date/heure IntlCalendar. Ceux sont des valeurs entières comprises entre 0 et IntlCalendar::FIELD_COUNT.

Valeurs de retour

Retourne TRUE en cas de succès ou FALSE si une erreur survient. Un échec ne peut survenir que lorsqu'un argument invalide est fourni.

Exemples

Exemple #1 Exempe avec IntlCalendar::clear()

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

$fields = 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 
$fields;
    
$ret = array();
    foreach (
$fields as $name => $value) {
        if (
$cal->isSet($value)) {
            
$ret[] = $name;
        }
    }
    return 
$ret;
}

$cal = new IntlGregorianCalendar(2013/* Mars */15);
echo 
"Après la création d'un GregorianCalendar\n";
print_r(getSetFields($cal));
echo 
"\n";

echo 
IntlDateFormatter::formatObject($cal), "\n";
echo 
"Après que le formateur ait demandé l'année étendue\n";
print_r(getSetFields($cal));
echo 
"\n";

$cal->clear(IntlCalendar::FIELD_YEAR);
echo 
"Après que l'année ait été vidée, la date reste la même\n";
echo 
IntlDateFormatter::formatObject($cal), "\n";
echo 
"car FIELD_EXTENDED_YEAR est toujours défini\n";
print_r(getSetFields($cal));
echo 
"\n";

var_dump($cal->clear(IntlCalendar::FIELD_EXTENDED_YEAR));
echo 
"Après que l'année étendue ait été vidée\n";
print_r(getSetFields($cal));
echo 
IntlDateFormatter::formatObject($cal), "\n";
echo 
"\n";

echo 
"Après que les champs aient été recalculés,\n"
        
" l'année étendue est de nouveau définie (à 1970)\n";
print_r(getSetFields($cal));
echo 
"\n";

$cal->clear();
echo 
"Après l'appel d'une variante sans argument\n";
print_r(getSetFields($cal));
echo 
IntlDateFormatter::formatObject($cal), "\n";

L'exemple ci-dessus va afficher :

Après la création d'un GregorianCalendar
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_YEAR
    [2] => FIELD_MONTH
    [3] => FIELD_DATE
)

15/03/2013 00:00:00
Après que le formateur ait demandé l'année étendue
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_YEAR
    [2] => FIELD_MONTH
    [3] => FIELD_DATE
    [4] => FIELD_EXTENDED_YEAR
)

Après que l'année ait été vidée, la date reste la même
15/03/2013 00:00:00
car FIELD_EXTENDED_YEAR est toujours défini
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
    [3] => FIELD_EXTENDED_YEAR
)

bool(true)
Après que l'année étendue ait été vidée
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
)
15/03/1970 00:00:00

Après que les champs aient été recalculés,
 l'année étendue est de nouveau définie (à 1970)
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
    [3] => FIELD_EXTENDED_YEAR
)

Après l'appel d'une variante sans argument
Array
(
)
01/01/1970 00:00:00