我在这里要做的是从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
我怎样才能实现这一目标?
答案 0 :(得分:1)
通过宣布解决我的问题:
$meet = array();
$test = array();
以及之后的每个if
:
$meet[] = $dt->format( "Y-m-d" );
$test[] = $dt->format( "Y-m-d" );
这样,如果你创建一个var_dump,它将为每一个都有一个数组。