strtotime의 +1 month 오류해결방법

프로그래밍/PHP|2015. 10. 4. 12:24
반응형

날짜를 구해주는 함수인 strtotime은 몇개월 또는 그 달의 마지막 월요일 또는 다음 월요일등을 구해주는 함수인데, 이 함수에 문제가 하나 있다면 해당월의 마지막 날이 비교값으로 들어가게 되면 예를들면


date("Y-m-t", strtotime("+1 month:)); 라는 구문을 주게 되면

실행일자 : 2015-5-31

예상일자 : 2015-6-30

결과일자 : 2015-7-31


이런식의 결과가 나오게 되는데 이 문제는 실행일자가 31일인데 다음 달이 오늘보다 작은 경우 발생하게 된다.


이를 방지가 위해 last day of +1 month를 사용하거나 자체 함수를 사용하는 경우가 있는데 last day of +1 month를 사용하면 PHP 버전의 영향을 받게 된다. 구버전인 PHP 4.4.2 에서는 해당 구문을 인식울 못한다.


그러므로 strtotime의 해당 오류를 해결하기 위해선 아래와 같은 구문을 사용하면된다.



여기서 만약 해당달의 다음달을 얻고 싶으면 date("Y-m")에 파라미터의 날짜를 넣어주면 된다.

반응형

댓글()