比如可以获取两个日期之间的所有月份、所有小时等
直接看代码
<?$start = new DateTime("2021-01-28");$end = new DateTime("2021-03-28");// 时间间距 这里设置的是一个月$interval = DateInterval::createFromDateString('1 month');$period = new DatePeriod($start, $interval, $end);foreach ($period as $k => $v) {echo $v->format("Y-m") . "\n";}
结果为:
2021-01
2021-02
<?
$start = new DateTime("2021-01-28");
$end = new DateTime("2021-03-28");
// 时间间距 这里设置的是一个星期
$interval = DateInterval::createFromDateString('1 week');
$period = new DatePeriod($start, $interval, $end);
$week = ['日', '一', '二', '三', '四', '五', '六'];
foreach ($period as $k => $v) {
echo $v->format("Y-m-d") . ' 周' . $week[date('w', $v->getTimestamp())] . "\n";
}
结果为:
2021-01-28 周四
2021-02-04 周四
2021-02-11 周四
2021-02-18 周四
2021-02-25 周四
2021-03-04 周四
2021-03-11 周四
2021-03-18 周四
2021-03-25 周四
<?
$start = new DateTime("2021-01-28");
$end = new DateTime("2021-02-15");
// 时间间距 这里设置的是一天
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($start, $interval, $end);
$week = ['日', '一', '二', '三', '四', '五', '六'];
foreach ($period as $k => $v) {
echo $v->format("Y-m-d") . ' 周' . $week[date('w', $v->getTimestamp())] . "\n";
}
结果为:
2021-01-28 周四
2021-01-29 周五
2021-01-30 周六
2021-01-31 周日
2021-02-01 周一
2021-02-02 周二
2021-02-03 周三
2021-02-04 周四
2021-02-05 周五
2021-02-06 周六
2021-02-07 周日
2021-02-08 周一
2021-02-09 周二
2021-02-10 周三
2021-02-11 周四
2021-02-12 周五
2021-02-13 周六
2021-02-14 周日
