PHP获取两个日期之间每个月的星期六和星期六的数量

时间:2015-10-29 09:26:01

标签: php datetime

我在尝试什么

我可以在两个日期之间获得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;

1 个答案:

答案 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');
}