PHP Conference Nagoya 2025

IntlCalendar::set

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

IntlCalendar::set時刻または複数の共通フィールドを一度に設定する

説明

オブジェクト指向型

public IntlCalendar::set(int $field, int $value): true
public IntlCalendar::set(
    int $year,
    int $month,
    int $dayOfMonth = NULL,
    int $hour = NULL,
    int $minute = NULL,
    int $second = NULL
): true

手続き型

intlcal_set(IntlCalendar $cal, int $field, int $value): true
intlcal_set(
    IntlCalendar $cal,
    int $year,
    int $month,
    int $dayOfMonth = NULL,
    int $hour = NULL,
    int $minute = NULL,
    int $second = NULL
): bool

特定のフィールドを指定された値に設定するか、 いくつかの共通のフィールドを一度に設定します。 受け入れ可能な値の範囲は、 カレンダーの 緩いモード が有効かどうかに依存します。

衝突したフィールドについては、 あとで設定されたフィールドの優先度が高くなります。

このメソッドは、引数を4つ指定してコールできません。

パラメータ

cal

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

field

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

value

指定されたフィールドに設定する新しい値。

year

IntlCalendar::FIELD_YEAR に設定する新しい値。

month

IntlCalendar::FIELD_MONTH に設定する新しい値。 月の値は0から始まります。 つまり、1月は0として表され、2月は1、... 12月は11になります。 そして、Undecember(カレンダーそのもの) の場合は、12 になります。

dayOfMonth

IntlCalendar::FIELD_DAY_OF_MONTH に設定する新しい値。

hour

IntlCalendar::FIELD_HOUR_OF_DAY に設定する新しい値。

minute

IntlCalendar::FIELD_MINUTE に設定する新しい値。

second

IntlCalendar::FIELD_SECOND に設定する新しい値。

戻り値

常に true を返します。

変更履歴

バージョン 説明
8.2.0 戻り値の型が、true になりました。これより前のバージョンでは、bool でした。

例1 IntlCalendar::set()

<?php
ini_set
('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

//Calls made later have priority
$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
var_dump(IntlDateFormatter::formatObject($cal));


$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
//the time has not been recalculated yet. If we clear the extended year,
//the year set before will be used
$cal->clear(IntlCalendar::FIELD_EXTENDED_YEAR);
var_dump(IntlDateFormatter::formatObject($cal));

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

string(20) "01/07/2011, 00:00:00"
string(20) "01/07/2012, 00:00:00"

参考

add a note

User Contributed Notes

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