예시)
2020-01-06 ~ 2020-01-12
2020-01-13 ~ 2020-01-19
2020-01-20 ~ 2020-01-26
2020-01-27 ~ 2020-02-02
function get_find_weeks_in_month( $date )// date format => Y-m-d 특정 month에 week 구하기 { $day = date('w', strtotime($date) );//xxxx년 xx월 1일에 대한 요일구함 if( $day != 1 )//월요일이 아니면 $date = date('Y-m-d', strtotime("next monday", strtotime($date)));// xxx년 xx월에 첫번째 월요일 구함. $start_week = date( "W", strtotime($date) );//첫번쨰 월요일이 몇번쨰 주인지. $year = date( "Y", strtotime( $date ) );//년도 $temp_week = date( "Y-m-t", strtotime($date) );//xxxx년 xx월 마지막 날짜 구하고 $last_week = date("W", strtotime($temp_week));// xxxx년 xx월 마지막 날짜가 년도기준 몇번째 주인지. $result = array(); for( $i=$start_week; $i<=$last_week; $i++ ) { $data = get_week($i,$year); $result[] = $data; } return $result; } function get_week( $week, $year )// week => xxxx년 기준 주차 year => xxxx { $date_time = new DateTime(); $result['start'] = $date_time->setISODate($year, $week, 1)->format('Y-m-d');//월요일 $result['end'] = $date_time->setISODate($year, $week, 7)->format('Y-m-d');//일요일 return $result; } print_r( get_find_weeks_in_month( date('2020-01-01') ) );//테스트 /* output Array ( [0] => Array ( [start] => 2020-01-06 [end] => 2020-01-12 ) [1] => Array ( [start] => 2020-01-13 [end] => 2020-01-19 ) [2] => Array ( [start] => 2020-01-20 [end] => 2020-01-26 ) [3] => Array ( [start] => 2020-01-27 [end] => 2020-02-02 ) ) */