[알고리즘] 날짜 - 이번주에 시작일과 마지막일 구하기
<?php
//기본 날짜 세팅 - 이 부분을 날짜를 바꿔가면서 테스트 하시면 됩니다.
$year = date("Y");
$month = date("m");
$day = date("d");

$nowday = mktime(0,0,0,$month, $day, $year);
//오늘
$today = date("Y.m.d", $nowday);
//일주일전
$prev_week = date("Y.m.d", mktime(0,0,0,$month, $day-7, $year));
//일주일후
$next_week = date("Y.m.d", mktime(0,0,0,$month, $day+7, $year));
//이번달 마지막 날짜?
$last_day = date("t",$nowday);
//이번달은 몇 주?
//$month_week1 = date('t', mktime());
$month_week = date("t", mktime());
$month_week = $month_week / 7;
//$month_week1 = ceil($month_week1 /7);
$month_week = ceil($month_week);
//현재 요일
$now_week_day = date("w", mktime(0,0,0, $month, $day, $year));
$w_d[0] = "일요일";
$w_d[1] = "월요일";
$w_d[2] = "화요일";
$w_d[3] = "수요일";
$w_d[4] = "목요일";
$w_d[5] = "금요일";
$w_d[6] = "토요일";

//마지막 날의 요일을 구한다.
$end_week_day = date("w", mktime(0,0,0, $month, $last_day, $year));

if($day >= 1 && $day <= $now_week_day+1){//현재주가 시작 주이면
    $start_day = date("Y.m.d", mktime(0,0,0, $month, 1, $year));
    $end_day = date("Y.m.d", mktime(0,0,0,$month, $day + (6-$now_week_day), $year));
}elseif($day >= ($last_day - ($end_week_day+1)) && $day <= $last_day){//현재주가 마지막 주이면
    $start_day = date("Y.m.d", mktime(0,0,0, $month, ($day - $now_week_day), $year));
    $end_day = date("Y.m.d", mktime(0,0,0,$month, $last_day, $year));
}else{
    $start_day = date("Y.m.d", mktime(0,0,0, $month,  $day - $now_week_day, $year));
    $end_day = date("Y.m.d", mktime(0,0,0,$month, $day + (6-$now_week_day), $year));
}


echo "
오늘  : $today <br>
일주일전 : $prev_week <br>
일주일후 : $next_week <br>
이번달 마지막 날짜? : $last_day <br>
이번달은 몇 주? : $month_week <br>
현재 요일? : $w_d[$now_week_day] <br>
이번주 시작일 날짜? : $start_day <br>
이번주 마지막 날짜? : $end_day <br>
";
?>

출처 : http://phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=58495&sca=&sfl=wr_subject%7C%7Cwr_content&stx=%BD%C3%C0%DB%C0%CF&sop=and

이 글은 스프링노트에서 작성되었습니다.

'Language > PHP' 카테고리의 다른 글

[PHP]구글드라이브를 이용한 OCR 기능  (0) 2021.09.09
array_walk를 이용한 배열 함수  (0) 2008.07.18

+ Recent posts