PHP
[PHP] 날짜 입력으로 해당 월에 몇주차인지 구하기
teamnova
2022. 7. 15. 12:00
728x90
안녕하세요.
오늘은 PHP로 지정한 날짜가 몇월 몇주차인지 알아보는 예제를 진행해보겠습니다.
해당 달의 첫 주는 월요일부터 시작하는 주라는 기준으로 구해보겠습니다.
<?php
$today = date("2022-06-21");
$now_week = getWeek($today); //date("Y-m-d") 입력도 가능합니다
echo $today."는 6월의".$now_week."번째 주 입니다.";
function getWeek($date){
$DEFAULT_DAYS = 1; //1 ~ 7 (월 ~ 일)
list($yy, $mm, $dd) = explode('-', $date); // - 로 잘라서 연,월,일을 구합니다
$first_day = date('N', mktime(0,0,0,$mm, 1, $yy)); //입력한 날짜의 해당하는 월의 1일이 몇요일인지 구합니다.
if($first_day <= $DEFAULT_DAYS){
$remain_days = $DEFAULT_DAYS - $first_day;
$next_monday = $remain_days +1;
}else{
$remain_days= 7 - $first_day; //1일을 기준으로 해당주가 몇일 남았는지 구합니다.
$next_monday = $remain_days + $DEFAULT_DAYS +1; //1일 기준으로 차주의 월요일이 몇일인지 구합니다.
echo $next_monday;
}
if($dd < $next_monday){ //입력한 날짜가 전달의 마지막주에 포함될 경우.
$new_date = date('Y-M-d', mktime(0,0,0,$mm,0,$yy)); //날짜를 0으로 입력해서 지난달의 마지막 주를 새로계산하도록 합니다.
return getWeek($new_date);
}else{
$week = ceil(($dd-($next_monday -1))/7); //몇번째 주차인지 구하기.
return $week;
}
}
?>
몇번째 주인지 구할 날짜를 입력하고 해당 달의 1일이 무슨요일인지 구합니다.
1일이 월요일이 아닐경우 첫번째주가 아니고 지난달의 마지막 주이므로 첫번째 주를 구합니다.
출력하면 다음과 같은 결과가 나옵니다.
