strtotime -1 month 사용 기준점이 필요한 이유
잘못되었다고 표현 할 수도 있지만 기준을 정해준것이 아니기 때문에 잘못이라고 말하긴 그렇지 않나 싶습니다.
한달전과 한달후의 문제 인데요.
한달의 기준은 다음과 같습니다.
보통의 한달은: 30일, 31일
2월은: 28일, 29일
echo '잘못된 하달전: ' . date('Y-m-d H:i:s', strtotime('2023-03-31 00:00:00 -1 month')) . PHP_EOL;
echo '일자를 사용 : ' . date('Y-m-d H:i:s', strtotime('2023-03-31 00:00:00 -31 day')) . PHP_EOL;
echo '잘못된 한달후: ' . date('Y-m-d H:i:s', strtotime('2023-01-30 00:00:00 +1 month')) . PHP_EOL;
exit;
위 결과는 아래와 같습니다. 날짜는 문제가 되지 않는데 월을 기준으로 더하거나 뺐을때 문제가 됩니다.
이 부분은 기획자와 상의해서 한달의 기준을 어떻게 할것이냐 상의 후 처리 하는것이 올바르겠습니다.
잘못된 하달전: 2023-03-03 00:00:00
일자를 사용 : 2023-02-28 00:00:00
잘못된 한달후: 2023-03-02 00:00:00
한달의 마지막일은 date 함수에선 t 를 사용합니다.
● 같이보면 좋은글
- DateTime 클래스 unix timestamp 사용하여 날짜 출력하기 > PHP