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 

 

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

 

 

|

댓글 6개

언어의 특성을 잘 알고 사용처에 적절히 사용하면 되겠죠.
말일 부터 시작해 1달 텀이니 sql문이 맘에는 듭니다만...ㅎㅎ
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 은 약간의 문제가 있는 함수다라고 인식하고 쓰야겠어요
조용히 스크랩을 눌러봅니다.
댓글을 작성하시려면 로그인이 필요합니다.

자유게시판

+
제목 글쓴이 날짜 조회
11년 전 조회 1,860
11년 전 조회 1,182
11년 전 조회 3,927
11년 전 조회 4,882
11년 전 조회 1,216
11년 전 조회 1,178
11년 전 조회 6,319
11년 전 조회 2,013
11년 전 조회 1,405
11년 전 조회 1,824
11년 전 조회 2,078
11년 전 조회 1,261
11년 전 조회 1,836
11년 전 조회 1,789
11년 전 조회 2,217
11년 전 조회 1,122
11년 전 조회 1,212
11년 전 조회 1,164
11년 전 조회 1,120
11년 전 조회 1,140
11년 전 조회 3,734
11년 전 조회 1,196
11년 전 조회 1,133
11년 전 조회 1,689
11년 전 조회 1,440
11년 전 조회 1,210
11년 전 조회 1,725
11년 전 조회 1,446
11년 전 조회 1,208
11년 전 조회 1,377