php从两个日期之间的每1年开始获取日期

时间:2015-04-15 09:31:19

标签: php date

我试图每隔1年获取一次日期或两个日期之间的任何可变间隔。我的日期示例如下。它似乎永远运行,我不能让它工作,它最终不会打印任何东西。

$currentDate = '2014-04-15';
$endDate = '2018-04-15';
$reminder = '+1 year';

 $dateArray = array();

    while($currentDate <= $endDate){
        $currentDate = date('Y-m-d', strtotime($reminder, strtotime($currentDate)));
    array_push($dateArray, $currentDate);
    }
    print_r($dateArray);

2 个答案:

答案 0 :(得分:0)

请更改

$dateArray = array_push($dateArray, $currentDate);

array_push($dateArray, $currentDate);

因为array_push,返回布尔值,下次你调用这个函数,它会尝试将字符串存储在int / boolean类型中并导致错误。

答案 1 :(得分:0)

您可以使用DateInterval类和DateTime :: Add()方法:

    $begin_date = DateTime::createFromFormat('Y-m-d', '2014-04-15');
    $end_date = DateTime::createFromFormat('Y-m-d', '2018-04-15');

    $res_array = array();

    while ($begin_date < $end_date)
    {
        $begin_date->Add(DateInterval::createFromDateString('1 year'));
        $res_array[] = clone($begin_date);
    }
    echo ("<pre>"); print_r($res_array); echo ("</pre>");

这就是面向对象的风格。