【发布时间】:2019-03-01 08:27:51
【问题描述】:
我需要以 20 天为间隔循环遍历两个日期之间的天数,包括最后一个日期。例如,日期 2019/01/01 和 2019/01/27 之间应返回以下范围:
2019-01-01 => 2019-01-20
2019-01-21 => 2019-02-09
2019-02-10 => 2019-02-27
我已尝试使用此代码:
$start = new DateTime('2019-01-01');
$end = new DateTime('2019-02-27');
$interval = new DateInterval('P20D');
$period = new DatePeriod($start, $interval, $end, DatePeriod::EXCLUDE_START_DATE);
$from = $start->format('Y-m-d');
foreach ($period as $day) {
$to = $day->format('Y-m-d');
echo $from . ' => ' . $to . '<br>';
$from = $day->modify('+1 day')->format('Y-m-d');
}
输出:
2019-01-01 => 2019-01-21
2019-01-22 => 2019-02-10
这段代码有两个问题,不包括最后一个时期(不再包含20天)和提前一天。我该如何解决这些问题?
【问题讨论】:
标签: php datetime dateinterval