如何使用DateTime将两个日期之间的日期转换为数组

时间:2014-01-28 20:03:01

标签: php arrays date datetime

我在这里要做的是从3个月的范围内获取具有特定条件的日期,并将它们放入数组中。

获取日期:

$begin = new DateTime( 'NOW' );
$end = new DateTime('NOW');
$end->modify('+6 month');

$interval = new DateInterval('P1D');
$period = new DatePeriod($begin, $interval ,$end);

过滤以获取我的标准日期:

foreach ( $period as $dt ){
    if ((!($dt->format("l") === 'Saturday') || ($dt->format("l") === 'Sunday')) && ($dt->format("d") == '14')){
        $meeting = $dt->format( "Y-m-d" );
        echo $dt->format( "Y-m-d" ) . '<br />';

    }

    if((($dt->format("l") === 'Saturday') || ($dt->format("l") === 'Sunday')) && ($dt->format("d") == '14')){
        $dt->modify('Next monday');
        echo $dt->format( "Y-m-d" ) . '<br />';

    }   
}

echo '<hr>';
$interval_2 = new DateInterval('P1M');
$period_2 = new DatePeriod($begin, $interval_2 ,$end);

foreach ( $period_2 as $dt ){
    $dt->modify('last day of this month');  
    //echo $dt->format( "l Y-m-d\n" ) . '<br />';
    if(($dt->format("l") === 'Saturday') || ($dt->format("l") === 'Sunday') || ($dt->format("l") === 'Friday')){
        $dt->modify('previous Thursday');
        echo $dt->format( "Y-m-d" ) . '<br />';
    } else {
        echo $dt->format( "Y-m-d" ) . '<br />';
    }


}

这一切都很完美,但它们只是显示,我想把它们放在数组中,用fputcsv将它们变成CSV文件,所以我需要它们像:

Month, first_date, second_date

我怎样才能实现这一目标?

1 个答案:

答案 0 :(得分:1)

通过宣布解决我的问题:

$meet = array();
$test = array();

以及之后的每个if

$meet[] = $dt->format( "Y-m-d" );
$test[] = $dt->format( "Y-m-d" );

这样,如果你创建一个var_dump,它将为每一个都有一个数组。