$start = new DateTime('2021-09-07');
$end = new DateTime('2021-10-07 01:00:00');
$interval = new DateInterval('P1DT1H'); // 周期为一天一小时
// 创建一个时间周期对象,时间从$start(DateTimeInterface对象)开始以$interval(DateInterval对象)间隔迭代直到$end(DateTimeInterface对象)(不包含)
// $options设置为DatePeriod::EXCLUDE_START_DATE将排除开始时间
$period1 = new DatePeriod($start, $interval, $end, $options= 0);
// 创建一个时间周期对象,时间从$start(DateTimeInterface对象)开始以$interval(DateInterval对象)间隔迭代$recurrences次,
// $options设置为DatePeriod::EXCLUDE_START_DATE将排除开始时间
$period2 = new DatePeriod($start, $interval, 10, $options= 0);
foreach ($period1 as $date) {
var_dump($date->format('Y-m-d H:i:s'));
}
// 获取迭代次数;时间周期对象指定$end结束日期对象时无法获取
var_dump($period2->getRecurrences());
// 获取开始时间对象(DateTimeInterface对象)
$starts = $period1->getStartDate();
var_dump($starts->format('Y-m-d H:i:s'));
// 获取结束时间对象(DateTimeInterface对象)
$ends = $period1->getEndDate();
var_dump($ends->format('Y-m-d H:i:s'));
// 获取时间间隔对象(DateTimeInterface对象)
$interval1 = $period1->getDateInterval();
var_dump($interval1->format('%h小时'));