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일이 월요일이 아닐경우 첫번째주가 아니고 지난달의 마지막 주이므로 첫번째 주를 구합니다.
출력하면 다음과 같은 결과가 나옵니다.
'PHP' 카테고리의 다른 글
[PHP] 파일이나 디렉토리 있는지 확인하고 만들기 (0) | 2022.09.06 |
---|---|
[PHP] 동영상 업로드 하기 (0) | 2022.07.31 |
[PHP]SimpleXML 로 XML 파일 데이터 가져오기 (0) | 2022.06.30 |
[PHP]이미지 URI 주소로 이미지 다운로드 (0) | 2022.06.29 |
[PHP] Session 을 이용해서 로그인정보 가져오기 (0) | 2022.06.15 |