如何用php创建日期范围?

Sit*_*mah 9 php date web

我试着用PHP腾出时间.开始日期2017-01-29至2017-12-29.但那次发生的事情我无法在2月打印,因为这个月最多只有28天.如何订购打印,但2月日期最多28日.

我的剧本:

    date_default_timezone_set('UTC');

    // Start date
    $date = '2017-01-29';
    // End date
    $end_date = '2017-12-29';

    while (strtotime($date) <= strtotime($end_date)) {
                echo "$date\n"; 
                echo "<br>";
                $date = date ("Y-m-d", strtotime("+1 month", strtotime($date)));
    } 
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述

dav*_*ell 8

使用DateTime类查找下个月的最后一天:

date_default_timezone_set('UTC');

// Start date
$date = '2017-01-29';
// End date
$end_date = '2017-12-29';

while (strtotime($date) <= strtotime($end_date)) {
            echo "$date\n"; 
            echo "<br>";
            $d = new DateTime( $date );
            $d->modify( 'last day of next month' );
            $date = $d->format( 'Y-m-d' );
}
Run Code Online (Sandbox Code Playgroud)

现在这可能不完全是您感兴趣的,因为您可能想要尝试不同的开始日期并且不要到下个月结束,或者您可能希望它在2月日期使用2/28,但是连续两个月回到29日.但这应该让你更接近你需要的逻辑.我认为使用DateTime将是你答案的一部分.