- 정보공유
[PHP] 날짜 구하기 계산식. 1월 31일은 3월3일로 계산되는 문제 해결.
date("Y-m-d", strtotime("2022-01-31 +1 months")); 으로 하게되면 결과값이 3/3 로 찍히는 문제가 발생함.
날짜 구하기 계산식. 1월 31일은 3월3일로 계산되는 문제 해결.
// 날짜(월)구하기
function wz_get_addmonth($date, $add) {
$date = preg_replace('/[^0-9]/', '', $date);
$year = substr( $date, 0, 4 );
$month = (int)substr( $date, 4, 2 );
$day = (int)substr( $date, 6, 2 );
// YYYY-MM-01 로 다음달 또는 이전달을 계산
$re_date = date('Y-m-d', mktime(0,0,0, ($month + $add), 1, $year));
// 계산될 달의 마지막 날짜를 계산
$re_date_lastday = (int)date('t', strtotime($re_date));
// date 값에서 날짜값이 마지막 날짜보다 많다면 마지막 날짜값으로 리턴
if ($day > $re_date_lastday)
$re_date = substr($re_date, 0, 7) .'-'.sprintf('%02d', $re_date_lastday);
else
$re_date = substr($re_date, 0, 7) .'-'.sprintf('%02d', $day);
return $re_date;
}