PHPを使用して週末を除外した日数をカウントする方法


方法1: strtotimeとdate関数を使用する方法

function countWeekdays($start, $end) {
  $count = 0;
  $current = strtotime($start);
  $end = strtotime($end);
  while ($current <= $end) {
    $weekday = date('N', $current);
    if ($weekday < 6) { // 6は土曜日、7は日曜日
      $count++;
    }
    $current = strtotime('+1 day', $current);
  }
  return $count;
}
$start = '2024-01-01';
$end = '2024-01-31';
$weekdayCount = countWeekdays($start, $end);
echo "週末を除いた日数: " . $weekdayCount;

方法2: DateTimeクラスを使用する方法

function countWeekdays($start, $end) {
  $count = 0;
  $current = new DateTime($start);
  $end = new DateTime($end);
  $interval = new DateInterval('P1D');
  $period = new DatePeriod($current, $interval, $end);
  foreach ($period as $date) {
    $weekday = $date->format('N');
    if ($weekday < 6) { // 6は土曜日、7は日曜日
      $count++;
    }
  }
  return $count;
}
$start = '2024-01-01';
$end = '2024-01-31';
$weekdayCount = countWeekdays($start, $end);
echo "週末を除いた日数: " . $weekdayCount;

これらの方法を使用すると、指定した日付範囲内で週末を除く日数をカウントすることができます。上記のコード例では、'2024-01-01'から'2024-01-31'までの期間で週末を除いた日数をカウントしています。