잠

N개월 뒤 오늘 구하는 소스 - strtotime 오류 방지

· 2016-08-03 (수) 16:07:33 · 3258

데모 - http://demo.widgets.co.kr/?c=64/67/68  

 

달력 등을 만들때 가끔 만나는 오류 중 하나입니다.

다음달 말일이 이번달보다 많을 때 한달 뒤 오늘은 날짜가 다르게 나오죠.

이건 버그가 아니라고 func 자체를 수정할 계획이 없다고 합니다.

향후 고처질 버그도 아니고 그대로 사용하면 필시 오류를 발생시킵니다.

그래서 만들어 쓰는 함수입니다.


function getDateTime($now, $term=1) {
     $time = strtotime(($term>0?"+":"-").$term." month", strtotime(date("Y-m",strtotime($now))." -01 "));
     $l = date('t', $time);
     return date("Y-m-".$l, $time);
}



foreach(array('2015-10-31','2015-11-30','2015-12-31','2016-01-31','2016-02-29','2016-03-31','2016-04-30','2016-05-31','2015-10-04','2015-11-18','2015-12-27') as $date ){
     echo $date.' → '.getDateTime($date,3).'<br>';
}



결과물
2015-10-31 → 2016-01-31
2015-11-30 → 2016-02-29
2015-12-31 → 2016-03-31
2016-01-31 → 2016-04-30
2016-02-29 → 2016-05-31
2016-03-31 → 2016-06-30
2016-04-30 → 2016-07-31
2016-05-31 → 2016-08-31
2015-10-04 → 2016-01-31
2015-11-18 → 2016-02-29
2015-12-27 → 2016-03-31 

 

 

 

데모 - http://demo.widgets.co.kr/?c=64/67/68 ​ 

|
댓글을 작성하시려면 로그인이 필요합니다.

개발자팁

5,403건

개발과 관련된 유용한 정보를 공유하세요. 질문은 QA에서 해주시기 바랍니다.

+
분류 제목 글쓴이 날짜 조회
PHP 16-10-10 조회 3,857
PHP 16-10-10 조회 3,495
PHP 16-10-06 조회 3,500
PHP 16-10-06 조회 4,727
PHP 16-10-06 조회 3,613
PHP 16-09-28 조회 3,536
jQuery 16-09-28 조회 4,665
PHP 16-09-27 조회 3,321
PHP 16-09-27 조회 4,548
웹서버 16-09-27 조회 3,578
JavaScript 16-09-23 조회 4,193
기타 16-09-20 조회 4,966
PHP 16-09-20 조회 4,368
기타 16-09-19 조회 5,432
JavaScript 16-09-17 조회 3,677
웹서버 16-09-15 조회 3,488
기타 16-09-01 조회 3,967
JavaScript 16-08-30 조회 3,531
node.js 16-08-23 조회 4,255
jQuery 16-08-21 조회 3,899
JavaScript 16-08-18 조회 5,466
PHP 16-08-11 조회 3,644
PHP 16-08-10 조회 4,068
JavaScript 16-08-09 조회 6,173
jQuery 16-08-05 조회 5,247
PHP 16-08-05 조회 1.5만
PHP 16-08-04 조회 7,281
jQuery 16-08-03 조회 3,888
PHP 16-08-03 조회 3,259
JavaScript 16-08-03 조회 6,450