[PHP] 특정 날짜가 있는 주의 월요일 날짜 구하기

2022. 9. 13. 16:57Program/PHP

052_PHP 특정 날짜가 있는 주의 월요일 구하기

[요약]

  • 특정 날짜가 있는 주의 월요일 날짜를 타임스탬프로 만들어 계산하는 방법을 알아보자.

특정 요일을 지정하고 그 주의 월요일 날짜와 금요일의 날짜를 구하는 방법에 대해 알아보자.

특정 날짜를 타임스탬프 값으로 변경한 후 해당 날짜의 요일에 맞게 값을 빼거나 추가한다.

 

2022년 9월 8일은 목요일이며, 이 주의 월요일을 구하려면 목요일에서 3일을 빼야 월요일이 된다.

이와 같은 방식으로 해당 주의 월요일과 금요일을 구할 수 있다.

 

다음은 특정 날짜가 있는 주의 월요일과 금요일을 구하는 예제이다.

[예제: 53_findMondayInThisWeek.php ]

<?php
    $year = 2022;
    $month = 9;
    $day = 8;

    // 특정 날짜의 타임스탬프값 구하기
    $targetDateTimeStamp = mktime(0, 0, 0, $month, $day, $year);

    // 요일 찾기
    $dayOfWeek = date('w', $targetDateTimeStamp);

    // 하루의 초(second)
    $secondOfOneDay = 60 * 60 * 24;

    switch ($dayOfWeek) {
      case 1:  // 월요일
        $monday = $targetDateTimeStamp;
        $friday = $targetDateTimeStamp + ($secondOfOneDay * 4);
        break;
      case 2:  // 화요일
        $monday = $targetDateTimeStamp - ($secondOfOneDay * 1);
        $friday = $targetDateTimeStamp + ($secondOfOneDay * 3);
        break;
      case 3:  // 수요일
        $monday = $targetDateTimeStamp - ($secondOfOneDay * 2);
        $friday = $targetDateTimeStamp + ($secondOfOneDay * 2);
        break;
      case 4:  // 목요일
        $monday = $targetDateTimeStamp - ($secondOfOneDay * 3);
        $friday = $targetDateTimeStamp + ($secondOfOneDay * 1);
        break;
      case 5:  // 금요일
        $monday = $targetDateTimeStamp - ($secondOfOneDay * 4);
        $friday = $targetDateTimeStamp;
        break;
    }

    if (isset($monday) && isset($friday)) {
      echo "{$year}년 {$month}월 {$day}일이 있는 주의 월요일과 금요일의 날짜";
      echo '<br>';
      echo '월요일 : ' . date("Y-m-d", $monday);
      echo '<br>';
      echo '금요일 : ' . date("Y-m-d", $friday);
    } else {
      echo "월요일 부터 금요일의 날짜를 입력하세요.";
    }
?>

실행결과

내용

 

 

 


 

 

 

초보자를 위한 PHP 200제
김태영 지음 | 정보문화사