첫 게시물을 어떤걸 쓸까.. 하다가 이전에 만들었던것 중에 쉬우면서 어렵게 느껴진? 것을 올려본다.
구글링 하면서 개발함 날짜함수는 머리속에 들어오질 않는당 ..
통계쪽 개발하다가 월별 -> 주차별 통계가 필요할때가있다.
아래의 예시처럼.
예시)
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
)
)
*/
혹시 필요한사람이 있으면 유용하게 썻으면 좋겠다.
좋은 코드인지는 나도 잘모르겠땅ㅋㅋㅎ
'PHP 일기장' 카테고리의 다른 글
[PHP] 다중 파일 업로드 + 이미지 미리보기 (Javascript, jQuery ) (3) | 2020.07.10 |
---|---|
[PHP] 정규표현식 특정 문자 찾기 (1) | 2020.06.15 |
[PHP] 퀵정렬을 활용하여 다차원 배열 소팅 (0) | 2020.06.05 |