(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
。
options
一个位域,可用于控制开始日期和结束日期的某些行为。
使用 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