메뉴 건너뛰기

프로그램언어

조회 수 684 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

예시)

2020-01-06 ~ 2020-01-12   
2020-01-13 ~ 2020-01-19   
2020-01-20 ~ 2020-01-26   
2020-01-27 ~ 2020-02-02

 

function get_find_weeks_in_month( $date )// date format => Y-m-d  특정 month에 week 구하기
{
    $day = date('w', strtotime($date) );//xxxx년 xx월 1일에 대한 요일구함
    if( $day != 1 )//월요일이 아니면
        $date = date('Y-m-d', strtotime("next monday", strtotime($date)));// xxx년 xx월에 첫번째 월요일 구함.

    $start_week = date( "W", strtotime($date) );//첫번쨰 월요일이 몇번쨰 주인지.
    $year = date( "Y", strtotime( $date ) );//년도
    $temp_week = date( "Y-m-t", strtotime($date) );//xxxx년 xx월 마지막 날짜 구하고
    $last_week = date("W", strtotime($temp_week));// xxxx년 xx월 마지막 날짜가 년도기준 몇번째 주인지.

    $result = array();
    for( $i=$start_week; $i<=$last_week; $i++ )
    {
        $data = get_week($i,$year);
        $result[] = $data;
    }
    return $result;
}

function get_week( $week, $year )// week => xxxx년 기준 주차 year => xxxx
{
    $date_time = new DateTime();
    $result['start'] = $date_time->setISODate($year, $week, 1)->format('Y-m-d');//월요일
    $result['end'] = $date_time->setISODate($year, $week, 7)->format('Y-m-d');//일요일

    return $result;
}

print_r( get_find_weeks_in_month( date('2020-01-01') ) );//테스트

/* output
Array
(
    [0] => Array
        (
            [start] => 2020-01-06
            [end] => 2020-01-12
        )

    [1] => Array
        (
            [start] => 2020-01-13
            [end] => 2020-01-19
        )

    [2] => Array
        (
            [start] => 2020-01-20
            [end] => 2020-01-26
        )

    [3] => Array
        (
            [start] => 2020-01-27
            [end] => 2020-02-02
        )
)
*/

 


하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved