首页 > 解决方案 > PHP DateTime 输出范围内的日期数组

问题描述

我是这样计算6个月内的日期的...

$date = new DateTime('01/02/2019');
$date->add(new DateInterval('P6M'));
echo $date->format('d/m/Y') . "\n";

据我所知,这是有效的,有人知道在这个新时期输出一组日期的方法吗?

DateTime 有内置的东西吗?

标签: phpdatetime

解决方案


您需要遍历所有日期,因为没有本机函数可以执行此操作。

您可以创建一个循环,将每个日期附加到一个数组中,并增加日期直到它到达结束日期。

function get_interval($startDate, $endDate) {
    $result = [];
    while ($startDate < $endDate) {
        $currentDate = (clone $startDate);
        $result[] = $currentDate;
        $startDate->modify("+1 day");
    }
    return $result;
}
$date = new DateTime('01/02/2019');
$enddate = (clone $date)->add(new DateInterval('P6M')); // Note that the object is cloned
                                                        // Otherwise we modify the original $date
print_r(get_interval($date, $enddate));

推荐阅读