我可以在两个日期之间获得sat& sun的数量。我想要的是在这些日期之间获得每个月的sat& sun数量。
假设start_date是2015年7月4日,end_date是2015年8月30日。然后在7月份有8个坐着和太阳,8月份有10个。
从我做的我得到18但是我需要得到8和10.我怎么能得到这个 ?
$countSat = 0;
$countSun = 0;
$start = new DateTime($_POST['start']);
$end = new DateTime($_POST['end']);
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($start, $interval, $end);
foreach ($period as $dt)
{
if ($dt->format('N') == 7)
{
$countSun++;
}
if ($dt->format('N') == 6)
{
$countSat++;
}
}
$count = $countSat + $countSun;
答案 0 :(得分:1)
尝试此选项:
$countSat = 0;
$countSun = 0;
$i = 0;
$start = new DateTime($_POST['start']);
$month = $start->format('n');
$end = new DateTime($_POST['end']);
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($start, $interval, $end);
foreach ($period as $dt)
{
if($month != $dt->format('n'))
{
$results[$i]=$countSun+$countSat;
$i++;
$countSun=0;
$countSat=0;
}
if ($dt->format('N') == 7)
{
$countSun++;
}
if ($dt->format('N') == 6)
{
$countSat++;
}
$month = $dt->format('n');
}