[ php ] 해당 년도의 주차별 시작일 종료일 구하기 > php

본문 바로가기

사이트 내 전체검색

php

[ php ] 해당 년도의 주차별 시작일 종료일 구하기

작성일 18-09-11 12:32

페이지 정보

작성자 웹지기 조회 6,444회 댓글 0건

본문

//해당년도의 주차별 시작일 종료일구하기 

//yearToWeek(2015) 배열로 저장(overlap을 false로 하면 52주 53주의 중복)

function yearToWeek($year,$overlap=true){

    $k = 0;

    $allWeek = array();

    for($i=1; $i<=12;$i++)

    {

        $sa = mktime(0,0,0,$i,1,$year);


        $ea = mktime(23,59,59,$i,date("t",$sa),$year);

        $a = date("d",$ea);


        for($j=1; $j<=$a;$j++)

        {

            //해당날짜의 요일

            $dayOfTheWeek = date('w',mktime(0,0,0,$i,$j,$year));


            //주차의 시작일

            $sd = mktime(0,0,0,$i,$j-$dayOfTheWeek,$year);

            $sd1 = date("Y-m-d",$sd);

            $sdm = sprintf("%2d",date("m",$sd));

            $sdd = sprintf("%2d",date("d",$sd));


            //주차의 종료일

            $ed = mktime(23,59,59,$i,$j+(6-$dayOfTheWeek),$year);

            $ed1 = date("Y-m-d",$ed);

            $edm = sprintf("%2d",date("m",$ed));

            $edd = sprintf("%2d",date("d",$ed));


            if($aa != $sd1)

            {

                $k++;


                $allWeek[$k]['syear'] = $year;

                $allWeek[$k]['smonth'] = $i;

                $allWeek[$k]['sday'] = $j;

                $allWeek[$k]['eyear'] = $year;

                $allWeek[$k]['emonth'] = $edm;

                $allWeek[$k]['eday'] = $edd;


                //달이 틀리면? 두번을 넣어야 하는데???

                if($overlap)

                {

                    if($i != $edm)

                    {

                        //해당달의 시작일

                        $msd = mktime(23,59,59,$i,1,$year);

                        //해당월의 마지막 날짜

                        $med = mktime(23,59,59,$i,date("t",$msd),$year);

                        $med1 = date("Y-m-d",$med);

                        $medd = date("d",$med);


                        $allWeek[$k]['syear'] = $year;

                        $allWeek[$k]['smonth'] = $i;

                        $allWeek[$k]['sday'] = $j;

                        $allWeek[$k]['eyear'] = $year;

                        $allWeek[$k]['emonth'] = $i;

                        $allWeek[$k]['eday'] = $medd;


                        $k++;


                        $allWeek[$k]['syear'] = $year;

                        $allWeek[$k]['smonth'] = $edm;

                        $allWeek[$k]['sday'] = 1;

                        $allWeek[$k]['eyear'] = $year;

                        $allWeek[$k]['emonth'] = $edm;

                        $allWeek[$k]['eday'] = $edd;

                    }

                }


                //echo($k."~~~~~~~".$year."년".$i."월".$j."일====".$sd1."~~".$ed1."<br/>");

            }


            $aa = $sd1;

        }

    }

    Return $allWeek;

}


추천0

비추천 0

댓글목록

등록된 댓글이 없습니다.

전체 82건 5 페이지

이미지 목록

게시물 검색
Copyright © 즐거운 코딩 생활 ( funyphp ). All rights reserved.
PC 버전으로 보기