php관련

날짜계산 관련 질문입니다. (몇주차 구하기)

PHPdev 2011. 11. 18. 15:40
반응형

 질문내용
 2010년 1월 1일 ~ 2010 년 2월 12일
두 날짜 사이의 주 를 구하는 방법은?

ex) 5주  <- 이런식으로 나와야해요ㅠ_ㅠ
 답변내용
 
안녕하세요

심심해서 한번 만들어 봤습니다. ㅡㅡ;;

mktime 을 사용하는 방법이니 년월일 의 형식을 mktime으로 변화 하시는 방법으로 사용하시면
될뜻 합니다. 하니면 함수로 만들어 쓰셔도 되고욤

$StartWeek = mktime(0,0,0,1,1,2010);
$EndWeek = mktime(0,0,0,2,12,2010);

$Cday = $EndWeek - $StartWeek;
$Cday = $Cday/(60*60*24); // 차이나는 날짜 구하기
$We = 0;
for($i = 1;$i<=$Cday;$i++) { // 시작하는주 빼야 하니 i는 1부터 시작
$tempW = date("w",$StartWeek+((60*60*24)*$i));
if($tempW == 0) $We++;
}
$We--; // 마지막 날짜의 주는 빼야 하니 -1 해주고
echo $We;

그럼 도움이 되셨기 바라고요 이만
여기서 단순 Startweek-endweek/7 을 하면 안되는 이유는
시작 날짜가 일요일일수도 토요일일수도 있기 때문에 달력에 나오는
정확한 차이가 나오지 않는다.
그래서 for문을 돌면서 일요일일 경우에만 1주일을 더한다.

반응형