PHP Conference Japan 2024

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

設定特定欄位為指定值,或一次設定多個常用欄位。可接受的值的範圍取決於日曆是否使用寬鬆模式

對於衝突的欄位,後設定的欄位具有優先權。

此方法不能使用四個參數調用。

參數

cal

一個 IntlCalendar 實例。

field

IntlCalendar 日期/時間 欄位常數 之一。這些是介於 0IntlCalendar::FIELD_COUNT 之間的整數值。

value

指定欄位的新值。

year

IntlCalendar::FIELD_YEAR 的新值。

month

IntlCalendar::FIELD_MONTH 的新值。月份序列是從零開始的,例如,一月由 0 表示,二月由 1 表示,依此類推,十二月是 11,閏十二月(如果日曆有的話)是 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
8.4.0 此方法已棄用,建議使用 IntlCalendar::setDate()IntlCalendar::setDateTime() 方法。

範例

範例 #1 IntlCalendar::set()

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

//之後的呼叫具有優先權
$cal = new IntlGregorianCalendar(2013, 6 /* 七月 */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
var_dump(IntlDateFormatter::formatObject($cal));


$cal = new IntlGregorianCalendar(2013, 6 /* 七月 */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
//時間尚未重新計算。如果我們清除延伸年份,
//將使用先前設定的年份
$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"

另請參閱

新增註釋

使用者提供的註釋

此頁面沒有使用者提供的註釋。
To Top