(PHP 8 >= 8.3.0)
DatePeriod::createFromISO8601String — 從 ISO8601 字串建立新的 DatePeriod 物件
從 ISO8601 字串建立新的 DatePeriod 物件,如 specification
所指定。
specification
» ISO 8601 重複間隔規範 的子集。
可接受的 ISO 8601 間隔規範範例為 R5/2008-03-01T13:00:00Z/P1Y2M10DT2H30M
,它指定
R5/
)
2008-03-01T13:00:00Z
開始。
/P1Y2M10DT2H30M
)。
以下是一些 PHP 不支援的 ISO 8601 間隔規格特性範例:
R0/
)
Z
),例如 +02:00
。
選項
一個位元欄位,可用於控制起始和結束日期的特定行為。
使用 DatePeriod::EXCLUDE_START_DATE
可以從週期內的重複日期集中排除起始日期。
使用 DatePeriod::INCLUDE_END_DATE
可以將結束日期包含在週期內的重複日期集中。
當 specification
無法解析為有效的 ISO 8601 週期時,會拋出 DateMalformedPeriodStringException 例外。
範例 #1 DatePeriod::createFromISO8601String 範例
<?php
$iso = 'R4/2023-07-01T00:00:00Z/P7D';
$period = DatePeriod::createFromISO8601String($iso);
// 透過迭代 DatePeriod 物件,印出該期間內所有重複的日期。
foreach ($period as $date) {
echo $date->format('Y-m-d'), "\n";
}
?>
上述範例將輸出:
2023-07-01 2023-07-08 2023-07-15 2023-07-22 2023-07-29