php date와 mysql select 차이 어느 것이 맞다고 보세요? > 십년전오늘

십년전오늘

10년전 추억의 책장을 넘기며

php date와 mysql select 차이 어느 것이 맞다고 보세요? 정보

php date와 mysql select 차이 어느 것이 맞다고 보세요?

본문

날짜 함수로 하면

date( "Y-m-d", strtotime( "2014-01-31 +1 month" ) ); --> 2014-03-03

sql문으로 하면
SELECT DATE_ADD( '2014-01-31', INTERVAL 1 MONTH ) --> 2014-02-28 

 

한달 후를 계산하면 저렇게 나오게 되는데 여러분은 어느것이 옳다고 보시는가요?

 

 

  • 복사

댓글 전체

date함수가 저런지 몰랐네요. 저리 나오면 대략난감 아닌가요?
여기선 select문이 요구에 더 부합하지 않나 생각 됩니다.
예약 프로그램 같은 거 만들 때...
http://stackoverflow.com/questions/7119777/php-strtotime-1-month-behaviour

Php 의 이슈화된 버그이고, 해결방법이 올라와있네요.
그런데, 저는 처음알아서 ...정보 감사합니다.

쿼리로  날짜 처리하는게 습관인게 좋을때도 있었군요
다음달에 날짜(31)가 존재하지 않으면 그 다음달로 가는거 같습니다.
echo date( "Y-m-d", strtotime( "2014-01-28 +1 month" ) ); // 2014-02-28
echo date( "Y-m-d", strtotime( "2014-01-31 +1 month" ) ); // 2014-03-03
그렇습니다
마지막 달이 31일까지 있지않으면 그 다음달로 계산합니다
+2 month 하면 작은달 관계없이 2달 후를 계산하거든요
date( "Y-m-d", strtotime( "2014-01-31 +2 month" ) ); -->2014-03-31 이 된단 말이죠
+3 month <--- 이건 2014-05-01 이 되어버린단 말이죠
일관성 있게 3월 3일부터 한달 후인 2014-04-03 이 되면 그런 용도로 쓰면 되는데 왔다리 갔다리..

무턱대고 사용했다가 형편없는 프로그래머 될뻔했네요
앗, 형편없는거 맞나? ㅠㅠ
하여튼 strtotime 은 약간의 문제가 있는 함수다라고 인식하고 쓰야겠어요
© SIRSOFT
현재 페이지 제일 처음으로