IntlCalendar::add

Add a (signed) amount of time to a field

&reftitle.description;

&style.oop;

public `bool` `IntlCalendar::add` `int` `field` `int` `value`

&style.procedural;

`bool` `intlcal_add` `IntlCalendar` `calendar` `int` `field` `int` `value`

Add a signed amount to a field. Adding a positive amount allows advances in time, even if the numeric value of the field decreases (e.g. when working with years in BC dates).

Other fields may need to adjusted – for instance, adding a month to the 31st of January will result in the 28th (or 29th) of February. Contrary to `IntlCalendar::roll`, when a value wraps around, more significant fields may change. For instance, adding a day to the 31st of January will result in the 1st of February, not the 1st of January.

&reftitle.parameters;

`calendar`

- &intl.parameter.intl-calendar;

`field`

- &reference.intl.incfieldparam;

`value`

- The signed amount to add to the current field. If the amount is positive, the instant will be moved forward; if it is negative, the instant will be moved into the past. The unit is implicit to the field type. For instance, hours for `IntlCalendar::FIELD_HOUR_OF_DAY`.

&reftitle.returnvalues;

Returns &true; on success&return.falseforfailure;.

&reftitle.examples;

### `IntlCalendar::add`

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

    $cal = new IntlGregorianCalendar(2012, 0 /* January */, 31);
    echo IntlDateFormatter::formatObject($cal), "\n";

    $cal->add(IntlCalendar::FIELD_MONTH, 1);
    echo IntlDateFormatter::formatObject($cal), "\n";

    $cal->add(IntlCalendar::FIELD_DAY_OF_MONTH, 1);
    echo IntlDateFormatter::formatObject($cal), "\n";

&example.outputs;

    31 janv. 2012 00:00:00
    29 févr. 2012 00:00:00
    1 mars 2012 00:00:00