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

본문 바로가기
사이트 내 전체검색

php

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

페이지 정보

작성자 웹지기 댓글 0건 조회 5,153회 작성일 18-09-11 12:32

본문

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

//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

댓글목록

등록된 댓글이 없습니다.

Total 82건 7 페이지
게시물이 없습니다.
게시물 검색

회원로그인

접속자집계

오늘
5,303
어제
9,384
최대
33,828
전체
8,411,859

그누보드5
Copyright © funyphp.com. All rights reserved.