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,842
11년 전 조회 1,156
11년 전 조회 3,914
11년 전 조회 4,857
11년 전 조회 1,197
11년 전 조회 1,158
11년 전 조회 6,302
11년 전 조회 1,991
11년 전 조회 1,385
11년 전 조회 1,801
11년 전 조회 2,062
11년 전 조회 1,241
11년 전 조회 1,811
11년 전 조회 1,765
11년 전 조회 2,188
11년 전 조회 1,109
11년 전 조회 1,190
11년 전 조회 1,143
11년 전 조회 1,100
11년 전 조회 1,123
11년 전 조회 3,715
11년 전 조회 1,176
11년 전 조회 1,107
11년 전 조회 1,672
11년 전 조회 1,419
11년 전 조회 1,189
11년 전 조회 1,709
11년 전 조회 1,427
11년 전 조회 1,185
11년 전 조회 1,356
🐛 버그신고