PHP Conference Nagoya 2025

IntlCalendar::add

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

IntlCalendar::addフィールドに (符号付きの) 一定量の時間を追加する

説明

オブジェクト指向型

public IntlCalendar::add(int $field, int $value): bool

手続き型

intlcal_add(IntlCalendar $calendar, int $field, int $value): bool

フィールドに符号付きの量を追加します。 正の量を追加すると、時間を前に進めることができます。 たとえ、フィールドの数値の値が減るとしても、同じことができます。 (つまり、紀元前の年代を扱っていてもです)

他のフィールドは調整する必要があるかも知れません - たとえば、1月の31日に1ヶ月を足したとします。 そうすると、結果は 2月の28日(または29日) になるでしょう。 IntlCalendar::roll() とは異なり、 値が1周して元に戻る場合、 より重要なフィールドの値が変わる可能性があります。 たとえば、1月31日に1日足すと、1月1日ではなく、 2月1日になります。

パラメータ

calendar

IntlCalendar クラスのインスタンス。

field

IntlCalendar の日付/時刻 フィールド定数 のいずれか。 0 から IntlCalendar::FIELD_COUNT までの間の整数値です。

value

現在のフィールドに加算する、符号付きの値。 値が正の場合、 時は前に進みます。負の値の場合、時は過去に遡ります。 前後する単位は、フィールドによって暗黙のうちに決まります。 たとえば、IntlCalendar::FIELD_HOUR_OF_DAY の場合は 1時間単位です。

戻り値

成功時に true を返します。 失敗した場合に false を返します.

例1 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";

上の例の出力は以下となります。

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

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top