PHPで指定した日の一年分の全ての日付を取得する方法


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

    $targetDay = '2024-02-01'; // 取得したい日を指定する
    $year = date('Y', strtotime($targetDay)); // 年を取得する
    $start = $year . '-01-01'; // 開始日
    $end = $year . '-12-31'; // 終了日
    $days = array();
    $currentDay = $start;
    while ($currentDay <= $end) {
    $days[] = $currentDay;
    $currentDay = date('Y-m-d', strtotime($currentDay . ' + 1 day'));
    }
    print_r($days);
  2. DateTimeクラスを使用する方法:

    $targetDay = '2024-02-01'; // 取得したい日を指定する
    $year = date('Y', strtotime($targetDay)); // 年を取得する
    $start = new DateTime($year . '-01-01'); // 開始日
    $end = new DateTime($year . '-12-31'); // 終了日
    $interval = new DateInterval('P1D'); // 1日の間隔
    $days = array();
    $currentDay = $start;
    while ($currentDay <= $end) {
    $days[] = $currentDay->format('Y-m-d');
    $currentDay->add($interval);
    }
    print_r($days);

どちらの方法でも、指定した日を含む一年分の日付が配列として取得されます。取得した日付は、配列 $days に格納されています。それぞれの日付は文字列として表され、指定した日から始まります。

このような方法を使えば、PHPで指定した日の一年分の全ての日付を簡単に取得することができます。