IntlCalendar::set
時刻または複数の共通フィールドを一度に設定する
説明
オブジェクト指向型
public true IntlCalendar::set(int $field, int $value)
public true 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)
bool intlcal_set(
IntlCalendar $cal,
int $year,
int $month,
int $dayOfMonth = NULL,
int $hour = NULL,
int $minute = NULL,
int $second = NULL
)
衝突したフィールドについては、
あとで設定されたフィールドの優先度が高くなります。
このメソッドは、引数を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
に設定する新しい値。
例
例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"
参考
- IntlCalendar::get
- IntlCalendar::add
- IntlCalendar::roll