(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)
IntlCalendar::add — Ajoute une durée (signée) à un champ
Style orienté objet
Style procédural
Ajoute une durée signée à un champ. L'ajout d'une durée positive permet d'avancer dans le temps, même si la valeur numérique du champ décroit (i.e. lorsqu'on travaille sur les années en dates BC).
Les autres champs doivent s'ajuster ; par exemple, l'ajout d'un mois à la date du 31 Janvier retournera le 28 (ou 29) Févrirer. Contrairement à la fonction IntlCalendar::roll(), lorsqu'une valeur englobe plusieurs valeurs, plusieurs champs peuvent changer significativement. Par exemple, l'ajout d'une journée au 31 Janvier retournera le 1 Février, et non le 1 Janvier.
calendar
Une instance IntlCalendar.
field
Une constantes de champ
date/heure IntlCalendar. Ceux sont des valeurs entières
comprises entre 0
et
IntlCalendar::FIELD_COUNT
.
value
La durée signée à ajouter au champ courant. Si la durée est positive,
l'instant va se déplacer en avant ; si elle est négative, l'instant
va se déplacer dans le passé. L'unité est implicite suivant le type
de champ. Par exemple, ce sera en heures pour la constante
IntlCalendar::FIELD_HOUR_OF_DAY
.
Exemple #1 Exemple avec 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";
L'exemple ci-dessus va afficher :
31 janv. 2012 00:00:00 29 févr. 2012 00:00:00 1 mars 2012 00:00:00