我在这里要做的是从 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
我怎样才能做到这一点?
最佳答案
通过声明解决了我的问题:
$meet = array();
$test = array();
然后在每个 if
中:
$meet[] = $dt->format( "Y-m-d" );
$test[] = $dt->format( "Y-m-d" );
这样,如果您创建一个 var_dump,它将为每个变量创建一个数组。
关于php - 如何使用 DateTime 将两个日期之间的日期放入数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21415639/