PHPで指定した年月が二つの日付の範囲内にあるかをチェックする方法


  1. DateTimeオブジェクトを使用する方法:
function isYearMonthInRange($year, $month, $startDate, $endDate) {
    $startDateTime = new DateTime($startDate);
    $endDateTime = new DateTime($endDate);
    $dateToCheck = new DateTime($year . '-' . $month . '-01');

    return ($dateToCheck >= $startDateTime && $dateToCheck <= $endDateTime);
}
// 使用例
$startDate = '2021-01-01';
$endDate = '2022-12-31';
$yearToCheck = 2022;
$monthToCheck = 6;
if (isYearMonthInRange($yearToCheck, $monthToCheck, $startDate, $endDate)) {
    echo '指定された年月は範囲内です。';
} else {
    echo '指定された年月は範囲外です。';
}
  1. strtotime関数を使用する方法:
function isYearMonthInRange($year, $month, $startDate, $endDate) {
    $startTimestamp = strtotime($startDate);
    $endTimestamp = strtotime($endDate);
    $checkTimestamp = strtotime($year . '-' . $month . '-01');

    return ($checkTimestamp >= $startTimestamp && $checkTimestamp <= $endTimestamp);
}
// 使用例
$startDate = '2021-01-01';
$endDate = '2022-12-31';
$yearToCheck = 2022;
$monthToCheck = 6;
if (isYearMonthInRange($yearToCheck, $monthToCheck, $startDate, $endDate)) {
    echo '指定された年月は範囲内です。';
} else {
    echo '指定された年月は範囲外です。';
}

どちらの方法でも、指定された年月が指定された範囲内にあるかどうかを確認することができます。選択肢は個人の好みによります。以上が、PHPで指定された年月が二つの日付の範囲内にあるかをチェックする方法です。