-
カレンダーライブラリを使用する方法: PHPには、カレンダーライブラリを使用して日付や曜日を操作する機能があります。これを利用して月のすべての土曜日を取得することができます。
<?php $year = date('Y'); // 現在の年を取得 $month = date('m'); // 現在の月を取得 $start_date = new DateTime("$year-$month-01"); // 月の最初の日を指定 $end_date = new DateTime("$year-$month-t"); // 月の最後の日を指定 $interval = new DateInterval('P1D'); // 日単位のインターバル $period = new DatePeriod($start_date, $interval, $end_date); foreach ($period as $date) { if ($date->format('N') == 6) { // 土曜日の場合 echo $date->format('Y-m-d') . "\n"; } } ?>
上記のコードでは、現在の年と月を取得し、
DateTime
オブジェクトを使用して月の最初の日と最後の日を設定します。その後、DateInterval
とDatePeriod
を使用して日付の範囲を指定します。foreach
ループ内で、取得した日付の曜日を確認し、土曜日の場合には日付を出力します。 -
ループを使用する方法: カレンダーライブラリを使用せずに、ループを使用して月のすべての土曜日を取得する方法もあります。
<?php $year = date('Y'); // 現在の年を取得 $month = date('m'); // 現在の月を取得 $num_days = cal_days_in_month(CAL_GREGORIAN, $month, $year); // 月の日数を取得 for ($day = 1; $day <= $num_days; $day++) { $date = new DateTime("$year-$month-$day"); if ($date->format('N') == 6) { // 土曜日の場合 echo $date->format('Y-m-d') . "\n"; } } ?>
上記のコードでは、
cal_days_in_month
関数を使用して月の日数を取得し、ループ内で日付を1日ずつ増やしながら曜日を確認します。土曜日の場合には日付を出力します。
これらの方法を使用することで、PHPで指定した月のすべての土曜日を取得することができます。選択した方法に応じて、適切なコードを使用してください。